重温《C++ Primer》笔记九 const形参小结

本文主要探讨了C++中的const形参,包括非引用形参、引用形参和指针形参。在非引用形参中,形参是实参的副本,对形参的操作不影响实参。即使是const常量,也可以传递给非const形参,因为操作的是副本。对于编译器,const形参的处理与普通形参无异。
摘要由CSDN通过智能技术生成

首先,形参大致可以分为三种:非引用形参、引用形参和指针类型形参。


一、非引用形参

在传递参数的时候,不论是所谓的传值还是传址,实际上都是实参值到形参值的复制,其中的区别只是复制的是普通对象还是引用对象而已。对于非引用形参,通过参数传递之后,形参是实参的一个副本,而非引用形参使得复制后形参与实参并没有任何关联,因此,在函数中对形参的任何操作将不会影响到实参的值,因此,不论实参是变量还是常量,形参的操作是基于副本的,将不受任何的限制。如下例子:

void func1(int num)
{
	int value1 = num;
}

void func2(const int num)  //const形参
{
	int value1 = num;
}
void main()
{
	int num1 = 1;
	const int num2 = 2;
	func1(num1);
	func1(num2);  //ok,将const对象传递给非const形参
	func2(num1);
	func2(num2); 

这里,尽管实参是const常量,仍然可以传递给非const形参,因为形参操作的是实参的副本,并不直接访问const实参,因此,不论实参是不是const常量都与形参无关了。

对于编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值