sizeof中C语言是一个关键字,是可以计算类型或者变量大小的,其实sizeof也可以计算数组的大小。
比如:
#include<stdio.h>
int main()
{
int arr[10] = {0};
printf("%d\n",sizeof(arr));
return 0;
}
运行结果为:
这里输出的结果是40,计算的是数组所占内存空间的总大小,单位是字节。
我们又知道数组中所有元素的类型都是相同的,那只要计算出一个元素所占字节的个数,数组元素的个数就能算出来。这里我们选择计算第一个元素大小就可以。
#include<stdio.h>
int main()
{
int arr[10] = {0};
printf("%d\n",sizeof(arr[0])); //计算一个元素的大小,单位是字节
return 0;
}
运行结果为:
接下来就能计算数组元素的个数:
#include<stdio.h>
int main()
{
int arr[10] = {0};
int sz = sizeof(arr)/sizeof(arr[0]);
printf("%d",sz);
return 0;
}
运行结果为:
表示数组有10个元素。
使用上述计算,无论数组怎么变化,计算出的大小也就随着变化了。