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
是指向整个数组的指针。
数组的第一个元素在内存中的位置与整个数组的开头相同,因此这两个指针具有相同的值。