1、函數為什么需要傳參和返回值
(1) 函數的作用就是處理數據,傳入的參數就是被加工的數據,返回值就是輸出的結果。
(2)函數名就是這個函數的入口,在內存中表示就是一個函數代碼段的首地址,實質是一個指針常量,所以在程序中使用函數名都是當地址來用的,用來調用這個函數。再理解指針函數的實質就比較簡單了。
(3) 如果一個函數沒有傳參和返回值,也是可以的,也可以正常運行,那么沒有返回值和形參的函數怎么運行呢?為什么會有這種函數呢?其實這種類型的函數在C語言中有很多。主要有兩個作用:1) 在系統初始化的時候,我們做一些系統的配置工作,這種類型的函數都是一些配置函數,不需要形參。2)我們處理一些全局變量的數據時,會用到這種類型的函數。
2、輸入型參數和輸出型參數
我們舉個例子來說明一下什么是輸入型參數,什么是輸出型參數
int func(int a , int *p) { *p = a +10; return 0; } int main() { int x , y ; x = 10; func(x,&y); printf("x = %d \n", x); printf("y = %d \n", y); return 0; }
運行結果:
x = 10 y = 20
結論:
(1) func函數中a是輸入型參數,p是輸出型參數。
(2) 形參的傳值調用是輸入型參數。傳址調用即有可能是輸出型參數,也有可能是輸入型參數。作為輸入型參數使用時,一般會加入const關鍵字,表明是只讀,不能修改。