int t[10];
int * u = t;
cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
输出:
0045FB88 0045FB88
0045FB88 0045FB7C
u
的输出是有意义的。
我知道 t
和 &t[0]
应该有相同的值,但是 &t
怎么也一样呢? &t 究竟是什么意思?
最佳答案
当表达式中单独使用 t
时,会发生数组到指针的转换,这会产生指向数组第一个元素的指针。
当 t
用作 &
运算符的参数时,不会发生这种转换。 &
然后显式地获取 t
的地址(数组)。 &t
是指向整个数组的指针。
数组的第一个元素在内存中的位置与整个数组的开头相同,因此这两个指针具有相同的值。
关于c++ - 数组的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8412694/