返回
首页>资讯

c三目运算符怎么用

时间: 2023-04-11 18:31:29

c三目运算符怎么用

三目运算符是:结构的运算所谓三目就是需要三个变量对能进行运算的操作。举个简单的例子:a等于21问号3比4可分成几个部分,用括号分开:a等于21问号3比4最左边是赋值操作第二个部分是一个判断第三和第四部分是两个常数首先判断第三部分是否成立,成立即选择第三部分,否则选择第四部分像上面那个21成立,所以就执行了a等号3 这种运算还可以嵌套比如判断year是不是闰年,是则返回1,不是返回0year等于year%100等号等号0问号。

c语言中如何把 如何用三目运算符表达下面这些内容,本人已经试过 如果写成 1?int a:int b;程序会报错

变量定义中,不可以,但可以使用 预编译命令
~~~~~~~
用途是在变量赋值
int a=123, b=45,c ;
c=a>b?a:b;//取a和b中,较大的值

用三目运算符怎么才能输出字母

三目运算符本身能返回一个值。要让它输出,还需要输出函数。
例如:
int x;
printf("2+3=");
scanf("%d",&x);
printf("%c",x==5?'/':'X');

C语言中 怎样理解三目运算符(条件运算符)的右结合性?

这里涉及了C中的优先级、结合性、求值顺序。x0dx0a结合性只有在相同优先级的运算符间才起作用,比如a+b*c,+与*优先级不同,这里根本不用去管结合性。而a+b+c则需要进行结合性考虑了,如果+为左结合性,那么应该理解为:(a+b)+c,如果+为右结合性,那么应该理解为a+(b+c),当然了,我们已经知道+为左结合性了。x0dx0a对于?:,在C中与它优先级相同的只有它自己,因此只有连续的?:才会体现出它的右结合性,即a?b:c?d:e中,根据右结合性可知应理解为a?b:(c?d:e)。显然,上述问题中是体现不出这种结合性来的。x0dx0a再者,还有一个求值顺序的问题,a?b:c中,C语言规定先对a求值,非零则对b求值并作为该表达式的值,为零则对c求值并作为表达式的值,并且b和c中有且仅有一个会被求值。对于题目中的就应该是:先进行(--a == b++)的求值,根据是否为零,会对(a++)或(b++)进行求值。说白了,也就是只有两种可能性:可能性1:先算(--a == b++),再算(a++);可能性2:先算(--a == b++),再算(b++)。至于(--a == b++)中到底是先算--a 还是b++则仅从C语言这个角度是无法判别的,这是个实现问题,如果要想写出健壮的可移植的代码就应该避免这种表述。x0dx0a总结一下,就是先看优先级,次看结合性,有的求值有序,有的则无序。

猜你喜欢

本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有

备案号:鲁ICP备2022001955号-4

网站地图