C语言解答。int *p_data[10] 与int (*p_data)[10]有什么区别

C语言解答。int*p_data[10]与int(*p_data)[10]有什么区别... C语言解答。int *p_data[10] 与int (*p_data)[10]有什么区别 展开
 我来答
娴先变减再度打m
推荐于2017-09-29 · 超过10用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:27.8万
展开全部
*p_data[10]是指针数组,存放指针变量。如int *p1, *p2; p_data[0] = p1; p_data[1] = p2;
(*p_data)[10]是数组指针,指向具有10个元素的数组,如10个int data1[10], data2[10];p_data[0] = data1,
p_data[1] = data2; 等价于指向 int data[10][10]类型的数组指针;
追问
就是说(*p_data)[10]是指向10个数组,这10个数组每个都有10个元素??
追答
举个例子吧。
int data[20][10]; /* 20行 10列的二维数组 */
int data2[20][5]; /* 20行,5列的二维数组 */
int (*p_data)[10]; /* 指向 n行 10列的 二维数组指针 */
p_data = data; /* 正确 */
p_data= data1; /* 错误 */
p_data 是指向二维数组的指针,(*p_data)[10]相当于(*行)[列],这里列是固定的,行是可变的。如果还不能理解可以这样想,该指针是 指向 二维数组 “行” 的 指针,并且指定了列的宽度为10.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式