c – 数组的地址
作者:互联网
int t[10];
int * u = t;
cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
输出:
0045FB88 0045FB88
0045FB88 0045FB7C
你的输出是有道理的.
我知道t和& t [0]应该有相同的值,但是怎么来也是一样的?实际上意味着什么?
解决方法:
当t在表达式中单独使用时,会发生数组到指针的转换,这会产生指向数组第一个元素的指针.
当t被用作&的参数时.操作符,没有发生这种转换. &然后显式获取t(数组)的地址. & t是整个数组的指针.
数组的第一个元素在内存中与整个数组的起始位置相同,因此这两个指针具有相同的值.
标签:c,arrays,pointers,memory-address 来源: https://codeday.me/bug/20190916/1806683.html