关于C语言,以下程序的运算结果为()

问题描述:

关于C语言,以下程序的运算结果为()
main()
{int a=1,b=2,c;
c=(a>b)?b++:(++a>4)?b++;a+++;
printf("%d%d%d",a,b,c);
}
主要是c=(a>b)?b++:(++a>4)?b++;a+++;的运算顺序不是太明白.
1个回答 分类:综合 2014-10-05

问题解答:

我来补答
(a>b)?b++:(++a>4)?b++;a+++; //你写的最后一个+是不是没有呀
应该是下面这样的吧
(a>b)?b++:( (++a>4)? b++ : a++);
顺序很容易理解,C语言标准中明确规定,?:为一个顺序点,上面的式子可以简化为:
if (a >b ) b++;
else if (++a > 4) b++;
else a++;
这估计就是二级考试里面的题.真正在写C程序时,?: 一般不会嵌套.
欢迎到 0x30 帖吧讨论更多计算机相关的知识 .
 
 
展开全文阅读
剩余:2000
上一页:质点位移问题