做一个信息时代的独立阅读者。
前几天看到《C++ Primer》中提到了左值右值的概念,当时也没太当回事,以为就是等号的左右两侧。直到后来听了一节C++课程,里边的老师强调了这个概念,才觉得应该关注一下。
在某博客理解C和C++中的左值和右值中找到了一个容易理解的定义:
左值代表一个在内存中占有确定位置的对象(换句话说就是有一个地址)。
右值通过排他性来定义,每个表达式不是lvalue就是rvalue。因此从上面的lvalue的定义,rvalue是在不在内存中占有确定位置的表达式。
在某些情况下,如果写出了错误的代码,会看到lvalue
与rvalue
,也就对应左值和右值。
更进一步地,在C++11中出现了新的一个概念:右值引用,似乎与C++98中的左值引用区别开来。
具体的概念我今天已经没有精力仔细研究了,放两篇reference,仅供参考:
over~
网友评论