C++面试题

1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值
int a = 4;
(A)a += (a++); (B) a += (++a) ;© (a++) += a;(D) (++a) += (a++);
a = ?答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;改后答案依次为9,10,10,11
我在linux下编译,D也是错误的,可能某些编译器会通过。在这里记录一下,总觉得这些面试题根本没有意义,没有谁写代码时会这样给自己找麻烦。

int a = 4;
a += (a++);
a += (++a);
//3,4,5在C++里编译不过
(a++) += a;    //3
(a++) += (++a);//4
(a++) += (a++);//5
//3,4,5,6,7,8在C里编译不过
(++a) += a;//6
(++a) += (++a);//7
(++a) += (a++);//8

gdb给出的错误提示,是赋值运算的左操作数必须是左值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值