摘要:
1.下面的代码输出是什么,为什么?(考查有符号类型与无符号类型之间的转换)voidfoo(void){unsignedinta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");}这个问题测试你是否懂得C语言中的整数自动转换原则;这无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。2.Typedef 阅读全文
posted @ 2012-02-29 23:57
朝寒雨晚来风
阅读(320)
评论(0)
推荐(0)
浙公网安备 33010602011771号