作业帮 > 综合 > 作业

变量名和变量地址之间是什么关系?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/11 07:50:27
变量名和变量地址之间是什么关系?
许多人都说变量名是变量地址的别名,既然如此,为什么在给地址变量赋值时还要使用取地址符号&呢?
变量名是高级语言所定义的一种东西,它主要是为了方便的寻址变量,在编译过程中,每个变量都有一个变量名,每个名都对应一个应用,即变量的首字节地址.也就是说变量名与其地址具有一对一的映射关系,然而在编译后变量的名字不存在了,C++为了区分类似于形式的变量名和真实地址就必须存在一种机制.

对于一个变量a,不加&,就表示取a的值,而加了&就是取a在内存中的地址,而后者的值只能赋给指针变量.

其实后来发现这种设计存在不良之处,也就是为什么Java,C#,删除了他们的区分,统一使用引用(与指针有细微的差别,但机制是一样)