在 Linux 系统中,sizeof
是一个运算符,用于计算数据类型或对象所占用的内存字节数
对于指针变量,sizeof
计算的是指针本身所占用的内存大小,而不是指针所指向的数据类型的大小。在 32 位系统中,所有类型的指针大小都是 4 字节(32 位);而在 64 位系统中,所有类型的指针大小都是 8 字节(64 位)。这是因为指针本身只是一个内存地址,其大小与所指向的数据类型无关。
例如:
#includeint main() { int a = 10; int *ptr = &a; printf("Size of int: %zu\n", sizeof(int)); printf("Size of pointer to int: %zu\n", sizeof(ptr)); return 0; }
在 32 位系统上运行此程序,输出将是:
Size of int: 4 Size of pointer to int: 4
在 64 位系统上运行此程序,输出将是:
Size of int: 4 Size of pointer to int: 8
请注意,这里的 sizeof
返回的是 size_t
类型的值,因此使用 %zu
格式说明符进行输出。