6.3.2 引用调用

引用调用是指被调函数的形参是指针型变量,函数调用时将把实参变量的地址传递给形参指针。在被调函数中,利用形参指针所得的地址来访问实际变量,变量的值会发生改变。引用调用将会影响主调函数中的变量值。

在C51语言中,常使用引用调用传递参数,在这种情况下,主调函数中变量的值将发生改变。引用调用的程序示例如下。


include<stdio.h>//头文件

void ch(char*c)//定义函数,用于将大写字符改为小写字符

{

if(c>=‘A'&c<='Z’)//判断,如果为大写,则改为小写字符

c=c+32;

}

void main()//主函数

{

char*c;//定义字符型指针变量

*c=‘R’;//赋值

ch(c);//调用函数

printf(“%c”,*c);//输出结果

}


该程序可以在KeilµVision3编译环境中执行,运行的结果如下。


r


在本例中,定义了函数ch(),用于将大写字符改为相应的小写字符。程序中的实参和形参都是字符型指针变量。在函数调用过程中,将实参指针c的地址作为实参的值传给形参。change()函数对该地址中的数值进行操作,因此该地址所对应的变量值改变了。从而达到将小写字符改为大写字符的目的。从本例可以看出引用调用可以改变主调函数中参数变量的值。