c语言数组sizeof
时间: 2024-12-26 07:25:03 浏览: 1
### C语言中使用 `sizeof` 计算数组大小
在C语言里,要正确获取数组的实际大小,应当直接对数组名应用 `sizeof` 运算符。这会返回整个数组占用的字节数量[^2]。
对于定义的一个整型数组:
```c
int arr[10];
printf("Size of array: %zu bytes\n", sizeof(arr));
```
上述代码片段展示了如何利用 `sizeof` 来获得名为 `arr` 的数组所占有的总空间大小。这里需要注意的是,在此上下文中,`arr` 表达的是完整的数组而非单个元素或其地址;因此,`sizeof` 返回的结果代表了全部十个整数成员共同占据的空间总量。
如果尝试通过取地址的方式(即使用 `&arr`),则得到的对象是指向该数组类型的指针,此时 `sizeof(&arr)` 实际上给出的是这种特定类型指针本身的尺寸,通常为4或8字节,具体依赖于编译环境和目标架构[^1]。
为了进一步澄清不同情况下的行为差异,下面提供了一个更全面的例子来对比几种情形下 `sizeof` 的表现形式:
```c
#include <stdio.h>
int main() {
int arr[10];
printf("Size of entire array (bytes): %zu\n", sizeof(arr)); // 整个数组大小
printf("Size of pointer to first element (bytes): %zu\n", sizeof(&arr[0])); // 首元素指针大小
printf("Size of single integer element (bytes): %zu\n", sizeof(arr[0])); // 单个元素大小
return 0;
}
```
这段程序能够帮助理解不同类型的操作对象与 `sizeof` 结合时产生的效果,并强调只有当操作数确实是一个实际存在的数组实例时,才能准确反映出它的整体容量。
阅读全文