int arr的定义是否有任何区别;和int arr [1];

时间:2014-11-10 06:58:34

标签: c memory-management definition

我只是想知道,定义int arr;int arr[1];之间是否有任何区别(除了访问权限,我知道我们需要以arr和{{1}进行访问})。根据我的知识,两者都分配相同大小的内存(arr[0])。是否有关于这些分配的任何其他详细信息。

2 个答案:

答案 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

直接访问arr [0]