读书人

引述和使用引用传递参数《一》

发布时间: 2012-09-23 10:28:11 作者: rapoo

引用和使用引用传递参数《一》

引用实际上是一种隐式指针,它为对象建立一个别名,通过操作符&来实现。&是取地址操作符,通过它可以获取地址。
引用的形式如下:
数据类型 &表达式;
eg:
int a=100;
int & ia=a;
ia=2;
定义了一个引用变量ia,它是变量a的别名,对ia的操作与对a的操作完全一样。ia=2把2赋给a, &a返回a的地址。执行ia=2和执行a=2等价


使用引用的说明:
(1)一个C++引用被初始化后,无法使用它再去引用另一个对象,它不能被重新约束。
(2)引用变量只是其他变量的别名,对它的效果与原来对象的操作具有相同的效果。
(3)指针变量和引用有两点主要区别:一是指针是一种数据类型,而引用不是。指针可以转换为它所指向变量的数据类型,以便赋

值运算符两边的类型相匹配;而在使用引用是,系统要求引用和变量的数据类型必须相同,不能进行数据类型转换。二是指针变量

和引用变量都是用来指向其它变量,而指针变量使用的语法要复杂一些;而在定义了引用变量后,其使用方法和普通变量一样。
eg: int a=100;
int *p=&a;
int &ia=a;
(4)引用应该初始化,否则会报错。
eg:
int a;
int b;
int &a;
编译器会报出reference must be initialized 只要的错误,造成编译不能通过。
下面看个example:

/* * main.cpp * *  Created on: 2012-9-17 *      Author: china *      Demo *      引用!!!!!!!!!!!! */#include <iostream>using namespace std;int main(int argc, char **argv) {int a;int &ref_a = a;a = 100;cout << "a=" << a << endl;cout << "ref_a=" << ref_a << endl;a = 2;cout << "a=" << a << endl;cout << "ref_a=" << ref_a << endl;ref_a = 3;cout << "a=" << a << endl;cout << "ref_a=" << ref_a << endl;int b = 20;ref_a = b;cout << "a=" << a << endl;cout << "ref_a=" << ref_a << endl;ref_a--;cout << "a=" << a << endl;cout << "ref_a=" << ref_a << endl;return 0;}


//程序声明了变量a和一个队变量a的引用ref_a,通过不断地改变a和引用ref_a的值,来使用引用。

输出结果为:
a=100
ref_a=100
a=2
ref_a=2
a=3
ref_a=3
a=20
ref_a=20
a=19
ref_a=19
=========================================

读书人网 >编程

热点推荐