gpt4 book ai didi

c++ - 为什么在堆栈上声明的数组变量名不是指针 C++?

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:40 25 4
gpt4 key购买 nike

<分区>

如果我声明两个数组,一个在栈上,一个在堆上,我在打印变量名时会得到不同的行为(如果重要的话在 gdb 中)。

int array_on_stack[5];

int * array_on_heap = new int[5];

现在在 gdb 中,我逐步执行每一行代码,然后打印变量名称,期望获得每个代码的内存地址。

print array_on_stack

print array_on_heap

但对于array_on_stack,它打印数组的内容而不是内存地址。为了获得内存地址,我需要命令 print &array_on_stack。这表明 array_on_stack 不是指针。有人可以解释这两个声明在如何访问它们的内存地址方面的区别以及为什么会这样吗?

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