gpt4 book ai didi

C++ 解引用数组

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

我从未读过任何有关取消引用数组(如指针)的内容,我认为它不应该起作用。但以下代码在使用 QT Creator 和 g++ 4.8 时确实有效:

int ar[9]{1,2,3,4,5,6,7,8,9};
cout << *ar << endl; //prints the first element of ar

这是正确的行为还是只是编译器修复了代码?

最佳答案

您不能解引用数组,只能解引用指针。

这里发生的是,在大多数上下文中,数组类型的表达式被隐式转换为(“衰减”为)指向数组对象第一个元素的指针。所以ar“衰减”为&ar[0];为您提供 ar[0] 值的取消引用,它是一个 int

This recent answer of mine针对 C 对此进行了一些详细讨论。C++ 的规则类似,但 C++ 还有一些不发生转换的情况(您的代码中都没有发生)。

关于C++ 解引用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533128/

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