C语言形参与实参

2016-04-05  本文已影响251人  Yanci516

C语言中形参与实参的关系是:形参是实参的值副本,无论参数的类型是什么,传递到子函数的形参只是实参的值。在子函数里改变形参的值,并不会影响实参,通俗说就是形参的改变不会影响实参。
但是,如果参数是指针类型,则可以通过指针变量所指地址进行数据的改变,达到改变实参地址中的数据的目的。
在使用 swap 函数时,一定要保证上述两点,即:参数一定要是指针类型,指向待交换的数据;swap函数里交换的一定是地址中的数据,而不是地址。

以下几种写法

  1. 正确的写法:
{  
     int temp;
     temp = *a;
     *a = *b;
     *b = temp;
}```
2. 错误的写法①,错在交换的只是指针变量的地址,且形参的改变不能影响实参的值,并不是交换指针所指向的数据。
``` void swap(*int a,*int b)  
{  
     int *temp;
     temp = a;
     a = b;
     b = temp;
}```
3. 错误写法②,该函数的形参并不是指针类型,行参的改变并不影响实参的值。
``` void swap(int a,int b)  
{  
     int temp;
     temp = a;
     a = b;
     b = temp;
}```
####重要提示,C语言中的形参是非指针类型的子函数,返回值至多一个;而形参是指正类型的子函数则可以返回多个值。
上一篇下一篇

猜你喜欢

热点阅读