C語言形參與實參

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語言中的形參是非指針類型的子函數,返回值至多一個;而形參是指正類型的子函數則可以返回多個值。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容