我写了一个代码来打印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));
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,但如果我替换%d它%ld,它的工作原理.我不明白为什么我long int要打印一个小范围的号码.
这两个都是错误的你必须%zu用来打印类型的值size_t,这是什么sizeof回报.
这是因为不同的值具有不同的大小,您必须匹配它们.
像你这样不匹配的未定义行为,所以任何事情都可能发生.