对象和值
对象是一个名字,一个标识符,标识了一段连续的内存
之所以要对两个概念有区别,是为了统一 C 语言的语法解释, 方便记忆理解赋值语句的含义.
并且如果区分出了两个概念的区别, 当我们编写 C++程序时, 你脑中不再有变量的概念了, int a = 1 这条语句在你眼中就不再是定义一个名为 a 的整形变量, 并初始化为 1, 而是我们开辟一段存放整型数据大小内存, 并将这个内存命名为 a, 并赋值为一.
C++之所以可以作为较低层的语言, 原因之一就是其语法可以很好地抽象汇编语言, 直接对内存进行操作, 所以在编程时, 也需要有内存的意识.
赋值语句的语法解释
int a = 1 其实是告诉编译器,为我开辟一段连续的内存,并且为这段内存命名为 a,为这段内存初始化为 1,在等号左边时,a 表示以 a 命名的那段地址的值,在等号右边时 a 表示它本身,即那段以 a 命名的内存,例如:
a = 2
表示将2放到以a命名的内存当中,a在此作为左值表达式,而
a = a + 2
表示将 a 所表示的那段连续地址的值加上 2,放到以 a 命名的连续地址中去,左边的 a 和右边的 a 有不同的含义,这就是区分对象和值的意义。

浙公网安备 33010602011771号