C++ 左值与右值

2020-07-16  本文已影响0人  全方位小白

做一个信息时代的独立阅读者。

前几天看到《C++ Primer》中提到了左值右值的概念,当时也没太当回事,以为就是等号的左右两侧。直到后来听了一节C++课程,里边的老师强调了这个概念,才觉得应该关注一下。
在某博客理解C和C++中的左值和右值中找到了一个容易理解的定义:

左值代表一个在内存中占有确定位置的对象(换句话说就是有一个地址)。
右值通过排他性来定义,每个表达式不是lvalue就是rvalue。因此从上面的lvalue的定义,rvalue是在不在内存中占有确定位置的表达式。

在某些情况下,如果写出了错误的代码,会看到lvaluervalue,也就对应左值和右值。

更进一步地,在C++11中出现了新的一个概念:右值引用,似乎与C++98中的左值引用区别开来。
具体的概念我今天已经没有精力仔细研究了,放两篇reference,仅供参考:

  1. c++中的左值与右值
  2. C++11 左值、右值与右值引用

over~

上一篇 下一篇

猜你喜欢

热点阅读