其他分享
首页 > 其他分享> > c – 数组的地址

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