关于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+++;的运算顺序不是太明白.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 23:32:40

关于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+++;的运算顺序不是太明白.
关于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+++;的运算顺序不是太明白.

关于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+++;的运算顺序不是太明白.
(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 帖吧讨论更多计算机相关的知识 .