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()函数对该地址中的数值进行操作,因此该地址所对应的变量值改变了。从而达到将小写字符改为大写字符的目的。从本例可以看出引用调用可以改变主调函数中参数变量的值。