目录
概括
参数传递机制:值传递、指针传递、引用传递
实参求值副作用
大概就是编译器有不同的机制。程序员尽量再调用函数之前执行修改变量数值的表达式。
默认参数
在形参里可以设置默认参数,如果实参没有明确赋值则使用默认参数,如果实参有赋值则用实参的。
指针参数(指针作形参)
返回类型可以不是指针,形参是指针。需要传递地址!
可以改变实参的值
引用形参
可以改变实参的值
传递一个变量进去!!然后形参就是这个变量的别名,编译器不需要开辟存储空间
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;
}
引用函数
同上,也不能返回局部变量