sizeof()介绍
sizeof其实仅仅只是一个操作符,我们要注意它并不是一个函数,他就类似与常见的+、=、-......的操作符,并且sizeof是一个单目操作符。sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位来计数。
sizeof()用于数据类型
我们在初学C语言时,就已经知道了sizeof可以计算各种数据类型的所占的存储空间。例如,回忆一下以下代码:
cs
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(long double));
return 0;
}
运行出来的结果为(不同的计算器运行的结果部分不同):
4
1
2
4
8
8
4
8
sizeof()用于变量
我们可以看一下下面的例子:
cs
#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
int arr[] = { 1,2,3,4 };
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(b));
printf("%d\n", sizeof(arr));
return 0;
}
运行的结果为:
4
4
16
sizeof()计算元素个数
用整个数组的sizeof去除以一个元素的sizeof。
数组的长度 =数组所占的大小/ 单个数组元素所占的大小 。
cs
#include<stdio.h>
int main()
{
int arr[] = {1,2,3,4,5,6};
int len = sizeof(arr)/sizeof(arr[1]);
printf("%d\n", len);
return 0;
}
运行的结果为:
6