为什么第二个unsigned long long int打印出不同的值?

时间:2015-03-03 10:04:56

标签: c

unsigned long long int a,b;
a=3;
b=2;
printf("%d %d",a,b);

输出:

3 0

有人可以解释为什么b打印为0?

1 个答案:

答案 0 :(得分:6)

printf中使用错误的格式说明符会导致Undefined behavior。用于签名:

printf("%lld %lld",a,b);

表示无符号

printf("%llu %llu",a,b);