C++中指针和引用的区别
2011-10-22 15:25
141 查看
相同点:
1. 都是地址的概念;
区别:
A.
从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。
B. 从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域
C.
从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址
值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能
改。
1. 指针是一个实体,而引用仅是个别名。
2. 指针指向一块内存,它的内容是所指内存的地址;而引用是某块内存的别名。
3. 引用只能在定义时被初始化一次,之后不可变;指针可变。
4. 引用不能为空,指针可以为空。
5. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小。
1. 都是地址的概念;
区别:
A.
从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。
B. 从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域
C.
从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址
值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能
改。
1. 指针是一个实体,而引用仅是个别名。
2. 指针指向一块内存,它的内容是所指内存的地址;而引用是某块内存的别名。
3. 引用只能在定义时被初始化一次,之后不可变;指针可变。
4. 引用不能为空,指针可以为空。
5. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小。
相关文章推荐
- C++中指针(pointer)和引用(reference)的区别和联系
- 浅谈C++中指针和引用的区别
- 【C/C++】指针与引用的区别
- C++中引用和指针的区别
- c++引用与指针的区别(着重理解)
- C++ 中引用(reference)和指针的区别
- C++中引用和指针的区别
- C++中引用和指针的区别
- C++中指针和引用的区别
- C++中引用传递与指针传递区别(进一步整理)
- c++中指针,指针的引用,指针的指针的区别
- 【C++】指针与引用的区别
- C++ 指针和引用区别的总结
- More Effective C++:指针与引用的区别
- Java中引用数据类型与C++引用和指针的区别
- C++中引用传递与指针传递区别
- 浅谈C++中指针和引用的区别
- C++中引用与指针的区别(详细介绍)
- C++中的指针与引用区别
- C++指针和引用的区别与联系