跳到主要内容

简述sizeof 关键字 ?

参考答案:

sizeof 是 C 和 C++ 语言中的一个关键字,它用于确定其操作数(类型或对象)在内存中的大小(以字节为单位)。sizeof 的结果是一个无符号整数类型(通常是 size_t)。

sizeof 可以应用于数据类型(如 int, double, char 等)或变量名。对于数据类型,sizeof 返回该类型的一个对象在内存中的大小。对于变量名,sizeof 返回该变量所占用的内存大小。

这里有几个例子:

#include <stdio.h>

int main() {
    int a = 10;
    char b = 'A';
    double c = 3.14;

    printf("Size of int: %zu bytes\n", sizeof(int));
    printf("Size of char: %zu bytes\n", sizeof(char));
    printf("Size of double: %zu bytes\n", sizeof(double));
    printf("Size of a: %zu bytes\n", sizeof(a));
    printf("Size of b: %zu bytes\n", sizeof(b));
    printf("Size of c: %zu bytes\n", sizeof(c));

    return 0;
}

在这个例子中,sizeof 返回了 int, char, 和 double 类型在内存中的大小,以及变量 a, b, 和 c 的大小。注意,这些大小可能会因编译器和操作系统的不同而有所差异。

此外,sizeof 在编译时确定其值,而不是在运行时。这意味着 sizeof 的操作数不需要在运行时存在或可访问。例如,你可以对一个未定义的数组使用 sizeof,只要你知道它的类型即可。

#include <stdio.h>

int main() {
    int arr[10];
    printf("Size of arr: %zu bytes\n", sizeof(arr));
    // This will print the total size of the array, not the size of a single element

    printf("Size of one element in arr: %zu bytes\n", sizeof(arr[0]));
    // This will print the size of one int element in the array

    return 0;
}

在这个例子中,sizeof(arr) 返回的是整个数组的大小(以字节为单位),而 sizeof(arr[0]) 返回的是数组中单个元素的大小。