永发信息网

请教指向 多维数组 的指针数组定义方法

答案:2  悬赏:20  手机版
解决时间 2021-04-05 12:29
  • 提问者网友:龅牙恐龙妹
  • 2021-04-05 04:39
我想定义一个指针数组p[4],而这个指针数组里面的每一个元素都是指针。每个指针指向一个32行4列的unsigned char 型变量的数组首地址。请问应该怎么定义???
我自己试过作如下定义:
unsigned char (*p[4])[32][4];
原理是:p在括号内 与[4]结合,意味p是一个数组,再与*结合,意味着数组这个数组时指针数组。然后再与[32][4]结合.......这里说不通了,不能说它里面的元素是指向32X4数组的首地址。所以编译器给了我一个警告: unreferenced local variable
所以我想请教大家,指向多维数组的指针数组如何定义???
难道就是unsigned char**p[4]??
最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-04-05 05:50
这样定义char (*b[4])[4];

表示 “b是一个指针数组,数组指针指向大小为4的char型数组”

虽然有点绕口不过,确实应该是这样的,你看《c专家编程》里有对声明的详细讲解

还有什么不清楚可以hI我
全部回答
  • 1楼网友:玩家
  • 2021-04-05 06:43
char (*p)[4];这是定义了一个数组指针,p指向含有4个char元素的数组 区别一下: char *p[4] 是指针数组,数组有4个元素,每个元素都是指针 char (*p)[4]是数组指针,p指向含有4个元素的数组 如p=&a[0][0]; (*p)[4] p+1 这时 p=&a[1][0] *p[4] p+1 这时为 p=&a[0][1]
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯