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/

10-11 20:58