【发布时间】:2015-01-06 10:27:54
【问题描述】:
我只是想知道,int arr; 和 int arr[1]; 的定义有什么区别(除了访问,我知道我们需要以 arr 和 arr[0] 的身份访问)。据我所知,两者都分配了相同大小的内存(sizeof(int))。有没有关于这些分配的任何其他细节。
【问题讨论】:
-
arr的类型在每种情况下都不同。 -
两者的唯一相同点是它们需要相同数量的内存。其他一切都不一样。它们是不同的类型,需要以不同的方式使用。
-
我想当
arr[1]是一个局部变量时,它总是在堆栈上分配,它不能在寄存器中分配。目前我没有看到空间分配方面的其他差异。 -
@Marian 感谢您的评论。这是我所期待的。
-
@Marian:可以使用
register关键字定义数组;你只是不能索引它(因为你不能获取它的地址)。
标签: c memory-management definition