如何快速判断一个值是左值还是右值呢

  • 左值:
    • 如果一个表达式有名称(变量、函数、对象等),那么它通常是一个左值。
    • 可以对左值进行取地址操作(&运算符)。
  • 右值:
    • 如果一个表达式是临时生成的、没有名称的,通常是一个右值。
    • 不能对右值进行取地址操作。
  • 图片[1]-如何快速判断一个值是左值还是右值呢-不念博客

    例如:

    int x = 10; // x 是左值
    int y = x;  // x 是左值,y 是左值
    int z = x + y; // x + y 是右值
    int* ptr = &x; // &x 是左值,ptr 是左值