函数形参(非引用,指针,引用)

本文详细介绍了函数形参的概念、作用及特点,并通过实例展示了非引用参数、指针形参和引用形参的使用方法。理解这些概念有助于更好地掌握函数调用机制。

形参定义:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数

形参作用:实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参

形参的特点:

1:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

2: 实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误

常用的形参方式:

1:非引用参数

例:

void add(int x1,int x2)
{
	printf("x1+x2=%d\n",(x1+x2));
}

注:这是最常用的形参方式,在函数被调用时,将会分配内存创建实参的副本(拷贝)。请理解采取副本的原因:(参见形参特点2)由于要使得形参只在函数内部有效,所以我们在函数调用时不能直接对保存实参的内存进行直接操作,而是对实参的拷贝进行操作。

2:指针形参

例:

void add(int *x1,int *x2)
{
	printf("(*x1+*x2)=%d\n",(*x1+*x2));//将int型数组x1和x2的首个元素进行相加求和
	*x1=10;//将改变实参的值
}

注:指针形参在函数调用时会创建指针的副本(可以理解为存放指针的变量),所以我们在函数中获得了指向指定数据块(实参)的指针,即可以对该数据块(实参)进行修改。同时由于指针可能指向一个对象或没有任何对象,所以函数在确定指针实际指向一个有效地对象之前不能安全地解引用一个指针

3:引用形参

例1:

void add(int &x1,int &x2)
{
	printf("x1+x2=%d\n",(x1+x2));
	x1=2;//将改变实参的值
	x2=3;//将改变实参的值
}

例2:

void test(char *&fp)
{
	fp="ssssssss";//将改变实参的值
	cout<<"int :"<<fp<<endl;
}

注:引用形参将直接捆绑实参对象,可以理解为实参的别名,对其操作实际就是直接对实参操作。由于应用形参需要和实参对象进行直接的绑定,所以引用必须被初始化为指向一个对象,而且一旦初始化将不能再指向其他对象。

参考文章:

1:函数的形参(非引用形参、指针形参、引用形参)

2:【C++基础学习】C++引用参数与指针参数






评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值