C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言地址传递和引用传递

C语言之地址传递和引用传递的问题

作者:donoot

这篇文章主要介绍了C语言之地址传递和引用传递的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C语言地址传递和引用传递

函数的参数传递方式有两种

如下列程序,程序扩展名为C

//本程序名为:地址传递.c
#include<stdio.h>
 
void exchg(int *px,int *py){
//此类是针对地址处的数值进行变化,指针关系不动	
	int tmp=*px;
	*px=*py;//地址处的数值变化 
	*py=tmp;
 
//此类仅仅转换地址,地址处的数值并无变化 
/* 
int *tmp;
tmp=px;
px=py;
py=tmp;
	*/ 
}
int main()
{
	int a=4,b=6;
	exchg(&a,&b);
	printf("a=%d,b=%d。\n",a,b);
return 0; 
} 

此程序中,输出结果为a=6,b=4。

实现数值转换。

参数传递中还有一种被称为是“引用传递”,目前C语言不支持该类型的传递,但是C++支持。

看下列程序:

//本程序名为:引用传递.cpp
#include <stdio.h>
 
int exchg(int &x,int &y){
	int tmp=x;
	x=y;
	y=tmp;
	printf("x=%d,y=%d\n",x,y);
	return 0;
}
 
int main(){
	int a=6,b=4;
	printf("a=%d,b=%d\n",a,b);
	
	exchg(a,b);
		printf("a=%d,b=%d\n",a,b);
	
	return 0; 
	
} 

此程序代码中exchg(int &x,int &y)函数会将a,b分别代替x,y,此时x,y分别引用了a,b变量。

此二类有关函数中的地址传递和引用传递务必熟练掌握领会。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文