我在 C 中写了一段代码来打印不同数据类型的大小。
#include<stdio.h>
int main()
{
printf("%d", sizeof(int));//size of integer
printf("%d", sizeof(float));
printf("%d", sizeof(double));
printf("%d", sizeof(char));
}
这不起作用,但如果我将 %d
替换为 %ld
,它就会起作用。我不明白为什么我必须使用 long int
来打印一个小范围的数字。
最佳答案
这两个都是错误的,您必须使用 %zu
来打印 size_t
类型的值,这是 sizeof
返回的值。
这是因为不同的值有不同的大小,你必须匹配它们。
像你这样不匹配是未定义的行为,所以任何事情都有可能发生。
关于c - 在 C 中使用 sizeof 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44927489/