C++指针与引用之间的区别

相同点:

他们都是和地址有关系的,我们可以看到指针指向一块内存,而引用是一块内存的别名;

 不同点:

1指针是一个实体他在栈中有自己使用的空间,但是引用没有;

2引用必须初始化,指针不用但是最好初始化

3指针使用时必须加*,引用不用;

4引用只能初始化一次是个专一的人,指针不是;

5引用不用const去修饰,但是指针可以

6指针和地址运用自增(++)不同,引用是值进行自增,而指针是地址进行自增;

注意:引用的话,只是给变量起了一个别名,并不另外占用空间,而指针是要在栈中开辟空间的

关于引用只能初始化一次,是个专一的人的解释如下:

    int a = 3;
	int b = 4;
	int& c = a;
	cout << "a=" << a << endl;
	cout << "c=" << c << endl;
	cout << "a id=" << &a << endl;
	cout << "c id=" << &c << endl;

	c = b;
	cout << "修改后" << endl;
	cout << "c=" << c << endl;
	cout << "c id" << &c << endl;
	cout << "a=" << a << endl;

上面的代码输出结果如下:

由上面的代码,以及其对应的输出结果可知,当再次修改引用的值时,引用的地址并没有改变,还是等于第一次初始化时的地址,另外当对引用c进行再次赋值时,对应的a的值也被修改,这才是引用只能初始化一次的解释。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值