作者takeabreak2 (小林)
看板Programming
标题[问题] C语言关於阵列位置的问题
时间Wed May 14 10:37:40 2014
大家好
小弟这两天才注意到一个问题
困扰了很久一直想不通
int a[5]={0,1,2,3,4};
printf("%X", a); //印出a的内容:3B241EA0
printf("\n");
printf("%X", &a); //印出a的位置:3B241EA0
printf("\n");
printf("%d", *a); //印出a所指的位置的内容:0
注解是我对程式码的理解
如果a的位置和内容相同
那a不是指向自己了? *a怎麽会是0?
大学用C语言写了四年
第一次注意到这件事......
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.167.89.52
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Programming/M.1400035063.A.B76.html
1F:→ saxontai:a == &a == &a[0]220.132.123.195 05/14 10:40
2F:→ saxontai:*a == a[0]220.132.123.195 05/14 10:40
3F:→ takeabreak2:谢谢楼上回覆,其实我的问题是记忆体 1.167.89.52 05/14 10:44
4F:→ takeabreak2:位置3B241EA0里面到底放什麽东西!? 1.167.89.52 05/14 10:44
5F:推 purpose:其实就是一个常见问题,网路上很多讨论了 124.8.130.43 05/14 10:52
6F:→ purpose:google 搜寻 array name pointer 124.8.130.43 05/14 10:53
7F:→ takeabreak2:感谢楼上指点关键字 :) I get it!! 1.167.89.52 05/14 10:55
8F:→ Killercat:这也是为什麽++a(a++)可以用的原因 59.124.251.135 05/15 14:50
9F:→ Killercat:要是无法表示成这写法 就没办法这样子 59.124.251.135 05/15 14:50
10F:→ Killercat:来移动pointer了 59.124.251.135 05/15 14:50