函数参数的引用型定义及转化为纯C环境下实现

  • 函数的定义:
    返回值类型 函数名(参数定义列表)
    调用方法:函数名(参数列表)
  • 函数参数的引用型定义:(基本类型或结构体类型)
//对比
int result=0;
void getResult(int r){
	++r;
}
int main(){
	getResult(result);//函数调用
	return 0;
}
//此方法改变的是函数内部r的值,并不是result这个变量。
//函数调用过程中只是把result的值赋值给了r这个变量
//执行完毕之后,result的值并没有改变。
//基本类型或者结构体类型参数 的引用型定义
int result=0;
void getResult(int &r){//r前多了一个取地址符号&
	++r;
}
int main(){
	getResult(result);//函数调用
	return 0;
}
//直接引用result的值
//也就是把result的值赋值给r
//再取这个值的地址(也就是result的地址)
//而不是将result的值赋值过来给r
//简单的说就是result替换掉r
//执行完毕之后result的值变为1
  • 用纯C来实现:(plain c:)
//基本类型或者结构体类型参数 的引用型定义 plain C
int result=0;
void getResult(int* r){//把r定义为一个整型类型的指针
	++(*r);
	//函数体内需要对r的进行改变
	//r是一个指针
	//所以需要对r先取值
	//在还原成一个整型变量
}
int mian(){
	getRestlt(&result)//函数调用
	return 0;
}
//&取地址
//result 是一个整型变量
//但函数的形参数是一个指向整型变量的指针
//所以:
//传参数的时候:就应该先把result的地址传进去
//&result:取到result的地址
//传到函数中赋值给了 可以存放地址的 指针类型变量r 
//而指针类型变量r 前面又加了一个* 
//则这个*又找到了result的值
//就可以对(实参)result的值进行改变了
//就达到了用指针实现了引用的效果


//指针型变量的引用型定义
int* p=NULL;
void getResult(int* &p){
	p=q;
	}
int mian(){
	getResult(p);
	}
void add(int a,int b,int&c){
	c=a+b;
	}
int *p=NULL;
void getResult(int **p){
	*p=q;
}
get Result(&p);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值