C++小题
1.右值不能取地址
++x 与 x++ 假定x的定义为 int x=0;,那么前者是左值,后者是右值。
前者修改自身值,并返回自身;后者先创建一个临时对象,为其赋值,而后修改x的值,最后返回临时对象。
对象–存储空间
变量–存储内容
区分表达式的左右值属性有一个简便方法:若可对表达式用 & 符取址,则为左值,否则为右值。
比如:
&obj , &*ptr , &ptr[index] , &++x 有效
&1729 , &(x + y) , &std::string(“meow”), &x++ 无效