Printf(“%d”)
What’s the output result of the following code snippet?
char foo() { unsigned int a = 6; int b = -20; char c; printf("%d ", a + b); (a + b > 6) ? ( c = 1 ) : ( c = 0 ); return c; } main() { char b = foo(); printf("%d",b); getch(); }
unsigned int + int = unsigned int, so a + b = 4294967282
printf("%d"), print as signed, so -14( = 4294967282 as unsigned)
printf(“%u”), print as unsigned int
作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.