【发布时间】:2012-07-27 15:22:32
【问题描述】:
这是 C 语言中的代码行。
这里循环的条件是++i。
那么编译器如何决定考虑哪个条件,因为这里其他两个作为条件出现?
char i=0;
for(i<=5&&i>-1;++i;i>0)
printf("%d",i);
输出
1234..127-128-127....-2-1
【问题讨论】:
-
请注意,程序的行为是实现定义的(或可能未定义的),并且取决于(除其他外)
char类型的符号,char可表示的值范围、int和unsigned int,以及从一种有符号类型到另一种有符号类型的缩小转换的实现定义的行为。简而言之:编写这样的代码是危险的。
标签: c