二维指针数组怎么初始化c语言,C语言一些总结(1)—二维指针数组初始化

二维指针数组初始化

行数为:row

列数为:column

方式一:

int **dp1;

dp1 = (int **)malloc(sizeof(int *) * row);//分配指针数组,计算行的大小

for(int i=0; i

方式二:

int*ptr[row];

for(int i=0;i

方式三:

int (*ptr)[column];

//方式一

ptr=(int(*)[column])malloc(sizeof(int)*row*column);

//方式二

for(int i=0;i

定义如下3个二维数组和二维指针进行说明:

1.  int **ptr;   //内存占用4个自己,也就是一个指针

2.  int *ptr[M]; //占用4*M个自己

3.  int (*ptr)[M];//占用4个字节

以上都是存放整数的二维数组,并且可以通过ptr[i][j]的形式访问内容,但是它们之间有很大差别,一些依照文中提到的方面

进行分析。

三个ptr本身都是指针,并且是二维指针,但是它们的最终内容总是整数,但中间内容,如ptr[i]并不是正式,而是指针int*

1.int**ptr 表示指向(一组指向整数数据指针)的指针

2.int *ptr[M]是指针数组,表示指向(M个指向整形数指针)的指针

3. int(*ptr)[M]表示指向一组(指向包含M个整形数据的指针)的指针。

参考链接:https://blog.csdn.net/nanjoh/article/details/54406988

另外补充一个小技巧。

求二维数组的总行数和总列数。

行数 = sizeof(array)/sizeof(array[0]);

列数 = sizeof(array[0])/sizeof(array[0][0]);

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值