1.下面程序输出什么?
- void foo(void)
- {
- unsigned int a = 6;
- int b = -20;
- (a + b) > 6 ? puts(">6") : puts("<=6");
- }
这个程序输出“>6”。
原因:当表达式中同时存在有符号和无符号数时,自动将有符号数转换为无符号数。
2.下面程序输出什么?
- void test(void)
- {
- int a = 2, b = 3, c;
- c = a+++b;
- printf("a=%d\n",a);
- printf("b=%d\n",b);
- printf("c=%d\n",c);
- }
这个程序输出:“a=3, b=3,c=5”
原因:根据最长处理原则,第4句被处理成“a++ +b”。
转载于:https://blog.51cto.com/nyc1991/1117960