gpt4 book ai didi

c++ - 为什么 (&array)[i] 不取第 i 个元素的地址?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:07 25 4
gpt4 key购买 nike

考虑以下代码

int tab2[2];
tab2[0]=5;
tab2[1]=3;
std::cout << tab2[1] << std::endl;
std::cout << (&tab2)[1] << std::endl;

正如我在其他主题中读到的,数组可以衰减到指向其第一个元素的指针。那么为什么上面代码中的 [] 对 tab2 和 &tab2 的作用不同呢?有什么不同?

最佳答案

它已经“转换”为指针。您可以将 [] 符号与数组或指针一起使用...

(&tab2) 表示您获取数组的地址...从指针的角度来看,它是指向指针 ( ** ) 的指针。

所以你试图将一个变量(它是一个数组)转换为一个指针。好的,但是随后您尝试访问 [1] 元素,该元素当然不存在,因为您的指针指向您的数组地址......这样的表示法需要第二个数组。

关于c++ - 为什么 (&array)[i] 不取第 i 个元素的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com