Date:
2013-12-22
Summary:
引用数据类型的一些概念记录
(沟通中提到引用必须结合语境才能知道说的是引用变量还是“引用”这一行为,再次提到引用指的一般是引用变量)
Contents:
1.什么是引用?
C++中提到引用,一般指的是C++中的变量的一种,它是一种数据类型,一种复合的数据类型.
C++ Primer plus中提到,引用是已定义的变量的别名。它的主要用途是作为函数的形参(之后会记录函数形参的有关知识,这里就只记录引用了,目的还是在于关注点单一)
2.创建引用变量
a).通过类型关键字和&操作符声明引用变量
b).引用变量必须在声明时初始化
int num = 10;
int& refNum = num; (int&描述了变量refNum是一个引用int类型的引用变量)
3.引用的原理
定义引用时,程序把引用和它初始值绑定在一起,而不将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起,无法令引用重新绑定到另外的一个对象。
定义了一个引用之后,对此引用做的一切操作,其实都是在与之绑定的对象上进行的。
Notes:
Nothing
EX:
// // main.cpp // Cpp_All_Test // // Created by StephenLee on 1/1/14. // Copyright (c) 2014 StephenLee. All rights reserved. // int num = 10; // a). // 声明一个引用变量refNum,并且在声明时候初始化,否则编译报错 int& refNum = num; //可见引用就是其绑定对象的一个别名而已,值相同,地址也相同 cout << "refNum = " << refNum << " refNum变量 地址:" << &refNum << endl; cout << "num = " << num << " num变量 地址:" << &num << endl; // b). // 对引用变量进行的所有操作,其实就是对引用变量绑定的数值进行操作 // 运算操作 refNum += 1; cout << "refNum = " << refNum << " refNum变量 地址:" << &refNum << endl; cout << "num = " << num << " num变量 地址:" << &num << endl; // 赋值操作 int num2 = 20; refNum = num2; //注意此处。 看上去好像是修改引用变量,让其引用到其他对象上。其实不是,引用一旦初始化绑定了某个对象 //就无法再绑定到其他对象上,这里其实是等价于: num = num2; 然后refNum依然绑定的是num而非num2 cout << "refNum = " << refNum << " refNum变量 地址:" << &refNum << endl; cout << "num = " << num << " num变量 地址:" << &num << endl;
THE END