理解数组地址和指针转换
在 C 中,数组和指针密切相关,但理解它们的关系可能很棘手。让我们探索以下代码片段来深入研究该主题:
int t[10]; int * u = t; cout << t << " " << &t << endl; cout << u << " " << &u << endl;
您观察到的输出是:
0045FB88 0045FB88 0045FB88 0045FB7C
解密输出
u (0045FB88) 的地址是可以理解的,因为它指向数组 t 的第一个元素。然而,在分析涉及 t 的表达式时,就出现了令人困惑的地方。
数组到指针的转换与数组地址
理解这种行为的关键在于如何在表达式中使用 t .
因此,&t 不是指向数组第一个元素的指针,而是指向整个数组的指针。
内存位置
在内存中,数组的第一个元素和数组的开头占据相同的位置。这就是为什么 t、&t[0] 和 &t 都具有相同的值。
总之,涉及 t 的表达式演示了数组到指针转换与使用显式获取数组地址之间的区别& 运算符。理解这种区别对于在 C 中有效使用数组和指针至关重要。
以上是数组到指针的转换和取址运算符 (&) 如何影响 C 中的数组地址?的详细内容。更多信息请关注PHP中文网其他相关文章!