通过指针修改值
#include<stdio.h>
void numberC(int a,int b)
{
int c;
c=a;
a=b;
b=c;
}
void addressC(int *c,int *d)
{
int *a;
a=c;
c=d;
d=a;
}
void towardC(int *c,int *d)
{
int a;
a=*c;
*c=*d;
*d=a;
}
int main()
{
int a=1,b=2;
int *c=&a,*d=&b;
numberC(a,b);
printf("直接转换:a=%d b=%d\n",a,b);
a=1,b=2;
addressC(c,d);
printf("地址转换:a=%d b=%d\n",a,b);
a=1,b=2;
towardC(c,d);
printf("指针转换:a=%d b=%d\n",a,b);
return 0;
}
在c语言中,实参和形参之间的数据传递是单向的“值传递”方式,调用函数不能改变实参变量的值,当指针变量作为函数参数时也遵循。调用函数不能改变实参指针的值,但可以改变实参变量所指向的变量的值(引用调用)。采用引用调用需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址作为实参。

浙公网安备 33010602011771号