楼主:
musicJD (J.D.)
2014-10-20 09:40:28想请问一下
int a[3] = {1,2,3};
cout << a << endl;
cout << &a << endl;
为什么印出来会是一样的
照理说 a这个变量 有本身它自己所在的内存位置啊
我知道 "阵列不等于指标" 只是有时可以decay成指标
难道是因为这点
Compiler特别设计 自动把 &a 看成 &a[0]吗?
作者:
CaptainH (Cannon)
2014-10-20 09:50:00&a和&a[0]的值相等 但意义不同也可以说是 用第一个元素的位址代表整个阵列的位址
作者:
purpose (秀才遇到肥宅兵)
2014-10-20 11:00:00因为你的照理说,a..自己所在的内存位置...是错的
作者:
Feis (永远睡不着 @@)
2014-10-20 12:16:00a 的值不是 a[0] 的位置. a 是代表整个阵列
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-10-20 12:42:00C 的阵列就是一块连续的内存, 所以 a 的位置就是这块连续内存的开头, 所以就等于 a[0] 的位置
作者:
carylorrk (carylorrk)
2014-10-20 16:30:00为什么你用 struct 时没有同样的困扰呢?
这是规定的 才不会有谁帮理发师刮胡子的问题(BULLSHIT)
作者: peoplewc (dong') 2014-10-25 01:36:00
深入浅出c