gpt4 book ai didi

c++ - 取消引用数组地址不起作用?

转载 作者:太空狗 更新时间:2023-10-29 23:44:10 25 4
gpt4 key购买 nike

考虑以下代码:

int myArray [3] = {1, 2, 3};

std::cout << myArray << "\n"; // 0x22ff24
std::cout << &myArray << "\n"; // 0x22ff24
std::cout << *myArray << "\n"; // 1
std::cout << *(&myArray) << "\n"; // 0x22ff24

为什么底部语句不像第三条语句那样给出 1?如果 myArray 等于 &myArray,为什么 *myArray 不等于 *(&myArray)?

最佳答案

该行为的原因是 &myArray 的类型是指向数组的指针。取消引用会产生对数组的引用,并且在输出时,数组会衰减为指向其第一个元素的指针。

您的困惑可能来自数组及其第一个元素具有相同地址的事实。然而,不仅地址而且表达式的类型都会影响它的计算方式。

关于c++ - 取消引用数组地址不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103536/

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