double salary = wage = 9999.99错误

在看书时,有这么一句表达式

double salary = wage = 9999.99;

在Linux中编译时,不能通过,提示是

error: ‘wage’ was not declared in this scope

这个错误应该这样理解。在C++中,=是从右到左进行结合,那么这个表达式可以拆分如下

double salary = (wage = 9999.99);

这样的话,这条表达式的意思是将9999.99赋值wage这个变量,然后用wage这个变量来初始化这个salary变量。由于在赋值操作时,编译器未找到wage这个变量,那么就会报错。
将表达式拆分如下,即可通过编译:

double wage;
double salary = wage = 9999.99;
posted @ 2018-10-13 21:19  dn96  阅读(488)  评论(0编辑  收藏  举报