首先明确一个我的假说,变量名是一个映射,是对内存地址+数据空间的映射,数据空间是数据类型所占字节数的表述,所以变量名反映的是地址+字节数这个信息。比如 有person这个类和per变量(属于person类),试着分析下面的表达式,
person &mn=per,因为mn是引用,所以这是把per的地址传给mn,空间大小没有传递,mn通过类person知道空间大小,没有必要再传过去。
person *mn=&per,这也是把per的地址传过去,&表示只传地址,单写per也没错,指针mn只能接受地址,空间大小已被类person告诉了。
person mn=per,这是复制初始化,系统为mn重开空间,把per的数据复制过来,mm和per的地址不一样。