Tag: 条件运算符

另一个条件运算符嵌套问题

根据C优先级表,三元条件运算符具有从右到左的关联性。 那么,它是否可以直接转换为等效的if-else梯形图? 例如,可以: x?y?z:u:v; 被解释为: if(x) { if(y) { z; } else { u; } } else { v; } 通过匹配else(:)与最近的未配对if( ? )? 或者从右到左的相关性是否意味着其他一些安排?

条件运算符“? :“

我昨天在C完成了编程考试。 有一个问题我无法回答,即使我今天研究过,我也无法提出解决方案。 所以我们有这个: int A= -1 , B= -2, C= -3, X=1; X = B != C ? A=(~C) – A– : ++C + (~A); printf(“A= %d B= %d C =%d X=%d \n”, A,B,C,X); 我知道如果X = B != C为真,则此运算符起作用,然后执行A=(~C) – A– 。 如果为假,则执行++C + (~A) 。 任何人都可以告诉我并解释printf中A,B,C和X的值是什么? 新 这包含在一个问题中,要求对整个程序进行“跟踪”: #include void main(){ int A= -1 […]

在这种情况下,多个条件运算符是个好主意吗?

我刚看到关于条件运算符的维基百科文章中的这段代码: Vehicle new_vehicle = arg == ‘B’ ? bus : arg == ‘A’ ? airplane : arg == ‘T’ ? train : arg == ‘C’ ? car : arg == ‘H’ ? horse : feet; 我已经改变了一些代码,但想法是一样的。 您会发现条件运算符的这种使用是否可以接受? 它比if – else结构更简洁,并且使用开关肯定会为bug提供一整套新的机会(任何人都可以使用?)。 此外, if – else和switch不能用作R值,那么您必须先创建变量,初始化它然后根据需要进行分配。 我真的很喜欢这个,但我想知道其他人的想法。 但格式化至关重要。 编辑:我仍然喜欢这个。 但我理解那些说“ switch声明是为此做出的”。 好吧,也许是这样。 但是如果条件是返回bool函数调用呢? 或者其他一百万件你无法打开的东西。 你切换爱好者真的试图说服一个巨大的if – else链更好吗? […]

三元运算符和C语言中的返回

为什么我们不能在C中的三元运算符中使用return关键字,如下所示:sum> 0? 返回1:返回0;