02 C++ 的引用

很多开发人员选择使用java就是避免C/C++的指针.

C++里的引用类型就是把C里的指针操作封装起来,避免直接操作内存地址,降低发生地址访问越界的问题.


声明引用类型的变量: 类型& 变量名=要引用的变量名

注意引用变量在声明时必须要初始化,也就是要指定引用的变量.我们只要像操作一般的变量来操作引用变量即可。


代码:

1

2 #include<iostream>

3

4 int main(void)

5 {

6 usingnamespace std;

7 int & p;

8 return 0;

9 } 



如上面代码没有初始化引用变量,则编译时发生错误:

[root@localhost02quote]# g++ 01test.cpp

01test.cpp: Infunction ‘int main()’:

01test.cpp:7:8:error: ‘p’ declared as reference but not initialized

int & p;

^


引用变量初始化指定引用变量后,无法再指定引用另一变量.

代码:

1

2 #include<iostream>

3

4 int main(void)

5 {

6 usingnamespace std;

7 int num =77;

8 int num2 =88;

9

10 int & p= num;

11

12 p = num2;

13 cout <<p << endl;

14 cout <<num << endl;

15 return 0;

16 }



这代码看上去,“p = num2”是指定引用另一个变量,实际根本不是。

p初始化指定引用num变量后, 写p相当于写num,“p = num2”相当于”num= num2”



引用变量作函数的参数使用


通过引用变量参数改变变量num的值

1

2

3 #include <iostream>

4

5 void func(int & p);

6 int main(void)

7 {

8 using namespace std;

9

10 int num = 88;

11

12 func(num);

13 cout << num << endl;

14 return 0;

15 }

16

17 void func(int & p)

18 {

19 p = 11;

20 }







注意引用变量p是局部变量,在func函数执行才会发配空间,也就是在函数执行时才会初始化”int& p = num”


在面试题里,C/C++的题里出现函数参数是引用变量时,需注意不是取地址的参数

调用参数为引用变量的函数时,我们只需提供变量,同时需注意函数有可能改变量里的值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值