这个形参包括了传入参数和传出参数;
传入参数:就是数值的传递。在函数中不会修改这个参数,不会修改调用这个函数的函数的值。
例如
void exchange(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int main ()
{
int a =4;
int b = 5;
exchange(a,b);
printf("a = %d\n b = %d\n",a,b);
return 0;
}
输出的结果是
a = 4;
b = 5;
这是传参,仅仅是一个数值的传递。
在调用exchange函数的时候,空间也分配了另一个a,b变量名的空间,在exchange在调用完的时候,空间释放。
exchange函数里面的a,b和主函数里面的啊a,b的空间是不一样的。仅仅是名字一样而已。
若
void exchange(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
这时候传递的变量的地址。真正在运行的时候通过地址找到实参的空间,将里面的数值改变。
传出函数:从函数带出来的值
传入函数:原来就有值供函数使用
传入参数:就是数值的传递。在函数中不会修改这个参数,不会修改调用这个函数的函数的值。
例如
void exchange(int a,int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int main ()
{
int a =4;
int b = 5;
exchange(a,b);
printf("a = %d\n b = %d\n",a,b);
return 0;
}
输出的结果是
a = 4;
b = 5;
这是传参,仅仅是一个数值的传递。
在调用exchange函数的时候,空间也分配了另一个a,b变量名的空间,在exchange在调用完的时候,空间释放。
exchange函数里面的a,b和主函数里面的啊a,b的空间是不一样的。仅仅是名字一样而已。
若
void exchange(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
这时候传递的变量的地址。真正在运行的时候通过地址找到实参的空间,将里面的数值改变。
传出函数:从函数带出来的值
传入函数:原来就有值供函数使用