gpt4 book ai didi

c++ - 数组名称是 C++ 中的常量指针吗?

转载 作者:IT老高 更新时间:2023-10-28 22:17:33 26 4
gpt4 key购买 nike

我有一个关于数组名 a 的问题

int a[10]

C++ 中如何定义数组名?一个常量指针?它是这样定义的,还是我们可以看起来像这样?可以对名称进行哪些操作?

最佳答案

C++ 标准定义了数组是什么以及它的行为。看看索引。它不是指针,无论是 const 还是其他,也不是别的,它是一个数组。

看看有什么不同:

int a[10];
int *const b = a;

std::cout << sizeof(a); // prints "40" on my machine.
std::cout << sizeof(b); // prints "4" on my machine.

显然 a 和 b 不是同一种类型,因为它们的大小不同。

在大多数情况下,数组名称“衰减”为指向其自身第一个元素的指针。您可以将其视为自动转换。结果是一个右值,这意味着它“只是”一个指针值,并且不能被赋值,类似于函数名称衰减为函数指针时。并不意味着它是“const”,但它是不可分配的。

所以数组"is"一个指针,很像一个函数"is"一个函数指针,或者一个 long "is"一个 int。也就是说,它不是真的,但由于转换,您可以在大多数情况下使用它。

关于c++ - 数组名称是 C++ 中的常量指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351544/

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