引用和指针

来源:互联网 发布:net连接mysql 编辑:程序博客网 时间:2024/06/17 10:31

1. 引用的定义:

int m;

int &n = m;

表示n 是m 的一个引用,即n 相当于m 的别名,对n 的任何操作就是对m 的操作。


2. 指针的定义:

(1)一个变量的地址称为该变量的指针

(2)如果一个变量专门用来存放另一个变量的地址,则称它为指针变量

(3)指针和指针变量的关系:指针变量的值是指针(地址)


3. 引用与指针的比较

(1)初始化

        引用被创建时必须被初始化; 指针可在任何时候被初始化

(2)NULL

       不能有NULL 引用,引用必须与合法的存储单元关联; 指针则可以是NULL
(3)关系的改变

       一旦引用被初始化,就不能改变引用的关系; 指针则可以随时改变所指的对象


4. 引用的主要功能:传递函数的参数和返回值

(1) 对于值传递,函数中的参数是外部变量的一份拷贝,函数对其进行改变,不会改变外部变量的值

(2) 对于指针传递,函数中的参数是指向外部变量的指针,改变该指针的内容将导致外部变量的值改变

(3) 对于引用传递,函数中的参数是外部变量 的引用,函数对其进行改变,相当于直接改变该外部变量


5. 指针的功能非常强大,为什么还要引用这一概念
答案:“用适当的工具做恰如其分的工作”,指针能够毫无约束地操作内存中的如何东西,太危险。

如果的确只需要借用某个对象的别名,那么就用“引用”,而不要用“指针”,以免发生意外。


摘自林锐高质量C++编程指南