c 引用和指针的区别 c 引用和指针的区别 C引用与指针的比较

C 引用与指针的比较

引用是C 中的概念,初学者容易把引用和指针混淆一起。

一下程序中,n是m的一个引用(reference),m是被引用物(referent)。

int m;

int &n = m;

n相当于m的别名(绰号),对n的任何操作就是对m的操作。

所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。

引用的规则:

(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。

(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。

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

以下示例程序中,k被初始化为i的引用。

语句k = j并不能将k修改成为j的引用,只是把k的值改变成为6。

由于k是i的引用,所以i的值也变成了6。

int i = 5;

int j = 6;

int &k = i;

k = j; // k和i的值都变成了6;

引用的主要功能是传递函数的参数和返回值。

C 语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。

以下是"值传递"的示例程序。

由于Func1函数体内的x是外部变量n的一份拷贝,改变x的值不会影响n, 所以n的值仍然是0。

void Func1(int x)

{

x = x 10;

}

...

int n = 0;

Func1(n);

cout

以下是"指针传递"的示例程序。

由于Func2函数体内的x是指向外部变量n的指针,改变该指针的内容将导致n的值改变,所以n的值成为10。

void Func2(int *x)

{

(* x) = (* x) 10;

}

...

int n = 0;

Func2(&n);

cout

以下是"引用传递"的示例程序。

由于Func3函数体内的x是外部变量n的引用,x和n是同一个东西,改变x等于改变n,所以n的值成为10。

void Func3(int &x)

{

x = x 10;

}

...

int n = 0;

Func3(n);

cout

c 引用和指针的区别 c 引用和指针的区别 C引用与指针的比较

对比上述三个示例程序,会发现"引用传递"的性质象"指针传递",而书写方式象"值传递"。

实际上"引用"可以做的任何事情"指针"也都能够做,为什么还要"引用"这东西?

答案是"用适当的工具做恰如其分的工作"。

指针能够毫无约束地操作内存中的任何东西,尽管指针功能强大,但是非常危险。

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


百度搜索“爱华网”,专业资料,生活学习,尽在爱华网  

爱华网本文地址 » http://www.aihuau.com/a/346051/90068379565.html

更多阅读

纯露和花水的区别 纯露可以当爽肤水用吗

纯露和花水的区别——简介国际上通行的叫法,hydrosol,hydralat,floral water 是一个概念,所以纯露=花水。国内市场混乱,没有统一标准。要看纯露和花水的区别,我们要看到事物的本质,纯露或者花水,是指100%纯天然植物提取的,没有添加化学成分

IMAX和3D电影的区别 imax 3d电影下载

IMAX和3D电影的区别——简介 观影时候经常会碰到2D、3D、IMAX、IMAX-3D这些电影,不同类型的电影给观影者的感觉也有很大的不同,那么怎样区别这些不同类别的电影呢?IMAX和3D电影的区别——不同类型电影介绍IMAX和3D电影的区别 1、2D电

集成显卡和独立显卡的区别? 独立集成显卡同时使用

集成显卡和独立显卡的区别?——简介集成显卡和独立显卡的区别集成显卡和独立显卡的区别?——方法/步骤集成显卡和独立显卡的区别? 1、独立显卡简称独显,是指成独立的板卡存在,是要插在主板的相应接口上的显卡。独立显卡不用去占用体系内

明前和雨前茶的区别四大点 明前茶好还是雨前茶好

1、明前茶和雨前茶采摘时间不同明前茶是指清明前(4月4日前)采摘的茶叶,而雨前茶是指清明后谷雨前(4月4日后,4月20日前)采摘的茶叶,虽然两者采摘相差的时间不是很长,仅仅是半个月,但是也有一定的区别。2、明前茶较细嫩,雨前茶稍次之明前茶在

玉髓和玉的区别有哪些? 黄玉和黄玉髓的区别

玉髓常被人们认为是玉的一种,因其名而当成玉石的精华,玉髓真的是玉中的精华吗?它的颜色非常丰富加上无良商家的欺骗导致很多人还是分不清玉髓和玉的区别,那么玉髓和玉有什么区别呢?玉髓属于“玉石”,但并不属于“玉”。现代把“玉”分成硬

声明:《c 引用和指针的区别 c 引用和指针的区别 C引用与指针的比较》为网友证明我的强大分享!如侵犯到您的合法权益请联系我们删除