关于引用
c语言的指针,c++的指针和引用,java的引用。三种语言两种东西把我搞得头昏脑胀的。今天总算理出头绪了!
指针就是存放地址的变量,这一点毫无疑问,c语言和c++都是一样。
java宣称对外无指针,其实java的引用相当于c语言的指针,指向对象的地址。
但是,c++的引用就不同了,c++的引用必须在定义时初始化,而且不能改变的。因为程序编译时会将变量和地址在符号表中做一个映射。指针变量在符号表上对应的地址值为指针变量的地址值(不是指针所指向的地址),而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,所以指针可以改变其指向的对象(指针变量中的值可以改),而引用对象则不能修改。
c++中的引用说白了就是在符号表中,有两个符号映射同一个地址,即变量的别名是也。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号