美文网首页
C语言形参与实参

C语言形参与实参

作者: Yanci516 | 来源:发表于2016-04-05 19:45 被阅读251次

    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语言中的形参是非指针类型的子函数,返回值至多一个;而形参是指正类型的子函数则可以返回多个值。
    

    相关文章

      网友评论

          本文标题:C语言形参与实参

          本文链接:https://www.haomeiwen.com/subject/gqbplttx.html