奥礼网
新记
C语言里这个表达式什么意思? a=(c,d,e)
如题所述
举报该文章
相关建议 2016-06-26
这个是考察逗号表达式,
逗号表达式的值就是最右边的e的值
所以
a=(c,d,e)
相当于
a=e;
验证:
#include<stdio.h>
int main(){
int a, c=1, d=2, e=3;
a=(c,d,e);
printf("a=(c,d,e)=%d", a);
return 0;
}
温馨提示:内容为网友见解,仅供参考
当前网址:
https://aolonic.com/aa/k3nk15wd13nawnn1a1.html
其他看法
第1个回答 2016-06-26
这个是复合的三目运算
例如x=a<b?c:d的意思就是如果a小于b,x就等于c,否则x=d
a<b?b:(c<d?d:e)
这样就明白了
如果a<b,那么表达式的值就是b,如果a不小于b,那么表达式的值就是(c<d?d:e)的值
c<d?d:e这个表达式中如果c<d那么表达式值就是d,否则就是e,
第2个回答 2016-06-26
需要首先明确1.)赋值操作符的优先级比“+”更低。2.)赋值操作符的返回值是赋值后的左操作数的值。3.)常量和表达式不能作为左值,不能作为左操作数(即不能放在二元运算符的左边)。以上3点判断如下:A:可以分割为两个连续的赋值操作,连续赋值操作从右至左执行,第一个执行赋值操作左边为(9+e+f)是表达式,错误。编译器应该报错。可以修改为d=9+e+(f=d+9)。B:正确。C:d+9是要干什么?也没有赋值。语法错误。D:同A建议写出来编译一下。映像会深刻些。某些教材是比较简略的,建议查查C++primer之类的书籍。
相似回答
大家正在搜
相关问题
c语言中a<b?b:c<d?d:e什么意思?
C语言里,怎样理解表达式(x=a>b)&&(y=c>d)的意...
c语言题, while(!e);中表达式!e 等价于( A ...
C语言里面?问号什么意思?:什么意思?
若有代数式,则不正确的C语言表达式是(C) A.a/b/c*...
c语言程序设计的d=(a>b>c)是什么意思?
c语言中。d=a>30?b:c 这个语句是什么意思
C语言环境中,设a=1,b=2,c=3,d=4,则表达式:a...