我只是想知道,定义int arr;
和int arr[1];
之间是否有任何区别(除了访问权限,我知道我们需要以arr
和{{1}进行访问})。根据我的知识,两者都分配相同大小的内存(arr[0]
)。是否有关于这些分配的任何其他详细信息。
答案 0 :(得分:0)
int arr;
此处arr
是int.sizeof(arr)类型的变量,将返回整数的大小。
int arr[1];
这里arr
是一个int类型的数组,它可以包含int类型的元素。在这种情况下,它只能保存一个整数element.sizeof(arr [0])将返回数组的第一个元素的大小。这是一个整数。
对于局部变量和数组,内存都在堆栈上分配。
答案 1 :(得分:0)
我认为int arr[1]
分配的内存超过int arr
int arr[1]
在第一个元素上创建指针的事实。所以你有arr
指针,这是&arr[0]
的注册值和arr [0]值。
您也可以通过*arr