我只是想知道,定义 int arr;
和 int arr[1];
之间有什么区别(除了访问之外,我知道我们需要以 arr
和 arr[0]
的形式访问)。据我所知,两者都分配相同大小的内存(sizeof(int)
)。关于这些分配还有其他细节吗?
最佳答案
int arr;
这里arr
是一个int类型的变量。sizeof(arr)将返回整数的大小。
int arr[1];
这里arr
是一个int类型的数组,它可以保存int类型的元素。在这种情况下,它只能容纳一个整数元素。sizeof(arr[0]) 将返回数组的第一个元素的大小,该元素是一个整数。
对于局部变量和数组,内存都是在堆栈上分配的。
关于c - int arr; 的定义有什么区别吗?和 int arr[1];,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838366/