C/C++ 二维数据 静态动态声明和初始化及访问方法实例

本文通过实例详细介绍了在 C/C++ 中如何声明、初始化并访问静态与动态二维数组。包括了数组的赋值、读取方法以及使用指针进行操作的具体实现。

C/C++ 二维数据 静态动态声明和初始化及访问方法实例

void D2A_test()
{	
	int rows=3;
	int cols=4;
	int i,j;
	int *p;
	char* pret;
	//静态声明二维数据
	/*
    int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}};
    //赋值
	for(i=0;i<rows;i++)
	{
		for(j=0;j<cols;j++)
		{
			a[i][j]=i*4+j;		    
		}
	}
		//
	p=a[0];  //数组首地址
	//一般二维数据读取法
	pret="一般二维数据读取法\n";	
	for(i=0;i<rows;i++)
	{
         for(j=0;j<cols;j++)
		 {
			 char* ret=new char[50];
			 memset(ret,0,50);
             sprintf(ret,"%d,",a[i][j]);
			 if(strlen(pret)<=0)
			 {
                 pret=ret;
			 }
			 else
			 {
			     pret=a2u(pret,ret);
			 }
		 }
		 pret=a2u(pret,"\n");
	}
	//*(p+5)=pos(0,1,2,3,4,5)=12
	//sprintf(ret,"test 2 array=%d,%d",*(p+5),a[1][1]);	//12,12
	ShowMsg(pret); 	
	//输出结果
	//一般二维数据读取法
	//1,2,3,4
	//11,12,13,14
	//21,22,23,24
	*/
	//动态声明二维数据	
	int zlen=rows*cols;
	int **a=new int*[rows];
	for(i=0;i<rows;i++)
	{
		a[i]=new int[cols];
	}
	p=a[0];  //数组首地址
	//赋值
	for(i=0;i<zlen;i++)
	{
		*(p+i)=i;
	}	
	//指针读取二维数据方法
	pret="指针读取二维数据方法\n";
	for(i=0;i<zlen;i++)
	{
		char* ret=new char[50];
		memset(ret,0,50);
        sprintf(ret,"%d,",*(p+i));
		if(strlen(pret)<=0)
		{
            pret=ret;
		}
		else
		{
		    pret=a2u(pret,ret);
		}         
	}
	ShowMsg(pret);
	//输出结果
	//指针读取二维数据方法
	//1,2,3,4,11,12,13,14,21,22,23,24
	return;
	//-----------------------------------
}

--the----end---

--vp:hsg

--create date:2012-04-19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值