为什么这个程序打印4%而不是4?
#include <stdio.h>
int main() {
printf("%lu", sizeof(int));
return 0;
}
答案 0 :(得分:1)
首先,sizeof
运算符会生成类型为size_t
的结果。您应该使用%zu
格式说明符来打印结果。
使用错误的格式说明符(格式说明符的参数不匹配)会调用undefined behavior。
那就是说,输出后你没有打印换行符,所以你只需要在输出后立即返回shell提示符 见
答案 1 :(得分:1)
此程序仅打印4
。
之后你可能会得到一个shell提示符(%)。
理想情况下应该是
printf("%zu\n", sizeof(int));//zu is the right format specifier for object of type size_t
注意我已经在下一行添加了\n
来获取shell提示符。
答案 2 :(得分:0)
它只是打印4.
结果 Codepad