今天学习,C++ Primer 书中有这么几句话
赋值运算符的左侧运算对象必须是一个可修改的左值。
int i = 0;
const int ci = i; //初始化而非赋值
首先初始化和赋值的区别我还是了解的,但不解的在于 const int ci = i; 这里。等号左边是一个不可修改的左值,不满足“赋值运算符的左侧运算对象必须是一个可修改的左值”,说明初始化语句里的等号不是赋值运算符。
在我以往的认知里 ’=‘ 就是赋值运算符,赋值运算符就是 ’=‘ ,现在推导出 初始化语句里的等号不是赋值运算符感觉怪怪的。