3.2 函数参数传递

这篇博客介绍了C++中函数参数传递的三种方式:值传递、指针传递和引用传递。详细讲解了实参求值副作用、默认参数、指针参数、引用形参以及int*&作形参的情况。同时,提到了指针函数作为返回值类型的应用,并强调了避免返回局部变量指针的重要性。最后,讨论了引用函数的特点。
摘要由CSDN通过智能技术生成

目录

概括

实参求值副作用

默认参数

指针参数(指针作形参)

引用形参

int*&作形参

指针函数(不是作形参,是作返回值类型)

引用函数



概括

参数传递机制:值传递、指针传递、引用传递


实参求值副作用

大概就是编译器有不同的机制。程序员尽量再调用函数之前执行修改变量数值的表达式。


默认参数

在形参里可以设置默认参数,如果实参没有明确赋值则使用默认参数,如果实参有赋值则用实参的。


指针参数(指针作形参)

返回类型可以不是指针,形参是指针。需要传递地址!

可以改变实参的值


引用形参

可以改变实参的值

传递一个变量进去!!然后形参就是这个变量的别名,编译器不需要开辟存储空间


int*&作形参

不需开辟存储空间,所以返回类型可以是空类型void

传一个指针变量进去!!


指针函数(不是作形参,是作返回值类型)

返回一个指针变量,在main函数中可以作间址操作输出该指针变量所指对象的数值。

形参应该可以是其他吧。。。

不能返回局部变量的指针,因为局部变量在函数执行完以后就会消失。

但可以将它弄成非局部变量(全局变量)和静态变量。(static)

例题:定义一个函数,返回较大值变量的指针

#include<iostream>
using namespace std;
int* fact(int* x,int*y)        
{
	if (*x > *y) return x;
	else return y;   //返回的是一个指针类型的
}
int main()
{
	int a, b;
	cin >> a >> b;
	cout<<*fact(&a,&b);  //返回的是一个地址值,所以还要间址操作取值
	return 0;
}

引用函数

同上,也不能返回局部变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值