C++ 中的表达式和表达式语句使用注意事项

2025-07-06 17:37:45

1、赋值表达式和赋值语句形如 a=5 的称为赋值表达式,其值茧盯璜阝就是赋的值,故 a = 5 等价于 5 ,这个表达式通常和 a==5 混淆,因为少些了一个等号,从而使逻辑变反,比如下面例子,本意是 a 为 0 输出 zero,但因为少些了一个等号, a = 0 这个赋值表达式为 0 ,即假,故输出为 not zero 。int a=0;if(a = 0)cout<<"zero"<<endl;elsecout<<"not zero"<<endl;与此类似的还有下面代码:int a=0;int k=0;while(k=0) a++;为了避免此种情形发生,从书写习惯上,我们更建议写为 0 == a ,将常量放置在前,因为 0 = a 为非法表达式,故少写一个等号编译器会提示错误。

2、逗号表达式和逗号表达式语句逗号表达式是用逗号连接起来的一系列表达式组成的一个大表达式,逗号表达式的最终值为最后一个表达式的值,一般来说,只有将逗号表达式的值赋值的时候,这个最终值才有意义,例如。int a,b,c,d,e;a = (b=1,c=2,d=3,e=4);因为逗号分割的最后一个表达式为赋值表达式 e = 4,其值为 4 ,故 a = 4 ,因为逗号表达式为一个整体,故使用时往往使用括号将其括起来。把逗号表达式加个分号就是逗号表达式语句,这个语句单独使用的情形不多,通常都是作为 for 的第一个和第三个表达式出现的,例如for(i=0,j=N-1;i<=j;i++,j--){//do sth}

3、由问号和冒号构成的三元表达式?: 这两个运算符组合在一起,称为条件运算符,其分隔开三个表达式,整体的值由第一个表达式的真假决定,要么取第二个表达式的值,要么取第三个表达式的值,类似于二选一的 if else 结构,三元表达式加分号后就称为三元表达式语句,但单独使用这个三元表达式语句是没有意义的,它往往和赋值表达式语句结合使用,并且为了使逻辑清晰,书写时也加上括号,形成类似下面的例子,int a=0,b=1,c=2,d;d = (a==0 ? b : c);此时,d = 1

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢