C语言的问题
#include(stdio.h)main(){inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++...
#include(stdio.h)
main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for(i=0;i<4;i++)
P[i]=&a[i*3];
printf("%d\n,p[3][2]);
}
以上程序的运行结果是12,是怎么得出来的/??请高手帮我讲解一下,我刚入门,很多不懂亚! 展开
main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for(i=0;i<4;i++)
P[i]=&a[i*3];
printf("%d\n,p[3][2]);
}
以上程序的运行结果是12,是怎么得出来的/??请高手帮我讲解一下,我刚入门,很多不懂亚! 展开
6个回答
展开全部
1,2,3|4,5,6|7,8,9|10,11,12
p[0]p[1]p[2]p[3]
上行是元素,下行是指针。
所以p[3]指向a[9]也就是10的地址
这时就可以把p[3]理解成指向数组[10,11,12],而这个数组的第3个元素也就是p[3][2]当然等于12了。
这么详细应该懂了吧!!!
p[0]p[1]p[2]p[3]
上行是元素,下行是指针。
所以p[3]指向a[9]也就是10的地址
这时就可以把p[3]理解成指向数组[10,11,12],而这个数组的第3个元素也就是p[3][2]当然等于12了。
这么详细应该懂了吧!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p[0]存放的是a[0]的位置;
p[1]存放的是a[3]的位置;
...
p[3]存放的是a[9]的位置;
p[3][2]相当于*(p[3]+2)即10+2=12
该题的目的在于让你知道数组在内存的存储方式是连续的内存地址。
p[1]存放的是a[3]的位置;
...
p[3]存放的是a[9]的位置;
p[3][2]相当于*(p[3]+2)即10+2=12
该题的目的在于让你知道数组在内存的存储方式是连续的内存地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
12/3=4
所以
p[0][0]=1
p[1][0]=4
....
....
p[3][0]=10
所以。。。
所以
p[0][0]=1
p[1][0]=4
....
....
p[3][0]=10
所以。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的人解释的很清楚了,我觉得也是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的2位高手 , 答对了,恭喜拉哈哈~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询