(一道选择题)有关于两种定义int (*p)[4] 和 int *p[4]的意义和区别
已知某程序中有声明“inta[4],j;”及语句“for(j=0;j<4;j++)p[j]=a+j”,则标识符p正确的声明形式应该为()A.intp[4];B.int*p...
已知某程序中有声明“int a[4],j;”及语句“for (j=0;j<4;j++) p[j]=a+j”,则标识符p正确的声明形式应该为()
A.int p[4];
B.int *p[4];
C.int **p[4];
D.int (*p)[4];
选(),为什么??
我重点想知道B,D两选项的区别! 展开
A.int p[4];
B.int *p[4];
C.int **p[4];
D.int (*p)[4];
选(),为什么??
我重点想知道B,D两选项的区别! 展开
3个回答
展开全部
B
a+j 是地址,p[j]是数组元素,可知p为数组指针
B为数组指针,里面有4个地址;
D为二维数组指针,4为二维数组每行元素的个数
从结合律可以看出来,* p先结合,指向一个地址,从该地址开始有4个元素
a+j 是地址,p[j]是数组元素,可知p为数组指针
B为数组指针,里面有4个地址;
D为二维数组指针,4为二维数组每行元素的个数
从结合律可以看出来,* p先结合,指向一个地址,从该地址开始有4个元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选B
原题显然是要定义一个指针数组,用来存放地址,那么就是选B了
B是定义了一个含有四个元素的指针数组。
D则是定义了一个指向“一个含有四个元素的一维整形数组”的指针变量。
原题显然是要定义一个指针数组,用来存放地址,那么就是选B了
B是定义了一个含有四个元素的指针数组。
D则是定义了一个指向“一个含有四个元素的一维整形数组”的指针变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询