C++Tricks31左值右值与常量性(lvalue,rvalueconstant).PDFVIP

  • 0
  • 0
  • 约3.06千字
  • 约 7页
  • 2018-01-28 发布于天津
  • 举报

C++Tricks31左值右值与常量性(lvalue,rvalueconstant).PDF

C++Tricks31左值右值与常量性(lvalue,rvalueamp;constant).PDF

C++Tricks3.1左值 右值与常量性 (lvalue,rvalue constant) 导⼊ 3.1左值右值与常量性 (lvalue,rvalue constant) ⾸先要搞清楚的是,什么是左值,什么是右值。这 ⾥给出左值右值的定义 : 1、左值是可以出现在等号(=)左边的值,右值是只能 出现在等号右边的值。 2、左值是可读可写的值,右值是只读的值。 3、左值有地址,右值没有地址。 根据左值右值的第⼆定义,值的左右性就是值的常 量性——常量是右值,⾮常量是左值。⽐如 : 1=1;//Error 这个复制操作在C++中是语法错误,MSVC给出的错 误提⽰为“errorC2106:=:leftoperandmustbel- value”,就是说’=’的左操作数必须是⼀个左值,⽽字⾯ 常数1是⼀个右值。可⻅,严格的区分左值右值可以 语 法分析的⾓度找出程序的逻辑错误。 根据第⼆定义,⼀个左值也是⼀个右值,因为左值 也可读,⽽⼀个右值不是⼀个左值,因为右值不可写。 通常情况下,声明的变量是⼀个左值,除⾮你指定 const将它变成⼀个右值 : intlv=1

文档评论(0)

1亿VIP精品文档

相关文档