在C语言中,sizeof是一个运算符,用于获取一个数据类型或变量在内存中所占的字节数。sizeof可以用于以下几种用法:
sizeof(数据类型):获取指定数据类型在内存中所占的字节数。例如,sizeof(int)将返回整型变量在内存中占用的字节数。
sizeof(变量):获取指定变量在内存中所占的字节数。例如,sizeof(num)将返回变量num在内存中占用的字节数。
sizeof 表达式:获取指定表达式的结果所占的字节数。例如,sizeof(num + 1)将返回num + 1表达式的结果在内存中占用的字节数。
需要注意的是,sizeof是在编译时求值的,而不是在运行时求值的。因此,sizeof的结果是一个常量表达式,可以在编译时就确定下来。
下面是一些示例:
#include <stdio.h>
int main() {
int num = 10;
int arr[5] = {1, 2, 3, 4, 5};
printf("sizeof(int): %zu\n", sizeof(int));
printf("sizeof(num): %zu\n", sizeof(num));
printf("sizeof(arr): %zu\n", sizeof(arr));
printf("sizeof(arr[0]): %zu\n", sizeof(arr[0]));
printf("sizeof(num + 1): %zu\n", sizeof(num + 1));
return 0;
}
输出结果:
sizeof(int): 4
sizeof(num): 4
sizeof(arr): 20
sizeof(arr[0]): 4
sizeof(num + 1): 4
可以看到,int类型在内存中占用4个字节,变量num占用4个字节,数组arr占用20个字节(每个元素int占用4个字节,一共有5个元素),arr[0]占用4个字节,num + 1占用4个字节。