C語言函數的參數和返回值
C 語言可以象彙編語言一樣對位、字節和地址進行操作。那麼大家知道C語言函數的參數和返回值是什麼呢?下面一起來看看!
如果把函數比喻成一台機器,那麼參數就是原材料,返回值就是最終產品;函數的作用就是根據不同的參數產生不同的返回值。
函數的參數
在函數定義中出現的參數可以看做是一個佔位符,它沒有數據,只能等到函數被調用時接收傳遞進來的數據,所以稱為形式參數,簡稱形參。
函數被調用時給出的參數包含了實實在在的數據,會被函數內部的代碼使用,所以稱為實際參數,簡稱實參。
形參和實參的功能是作數據傳送,發生函數調用時,實參的值會傳送給形參。
形參和實參有以下幾個特點:
1) 形參變量只有在函數被調用時才會分配內存,調用結束後,立刻釋放內存,所以形參變量只有在函數內部有效,不能在函數外部使用。
2) 實參可以是常量、變量、表達式、函數等,無論實參是何種類型的數據,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。
3) 實參和形參在數量上、類型上、順序上必須嚴格一致,否則會發生“類型不匹配”的錯誤。
函數調用中發生的數據傳送是單向的,只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
【示例】計算 1+2+3+...+(n-1)+n 的值。
#includeint sum(int n){ int i; for(i=n-1; i>=1; i--){ n+=i; } printf("The inner n = %d",n); return n;}int main(){ int m, total; printf("Input a number: "); scanf("%d", &m); total = sum(m); printf("The outer m = %d", m); printf("1+2+3+...+%d+%d = %d", m-1, m, total); return 0;}
運行結果:
Input a number: 100↙
The inner n = 5050
The outer m = 100
1+2+3+...+99+100 = 5050
通過 scanf 輸入 m 的值,作為實參,在調用 sum 時傳送給形參 n。
從運行情況看,輸入 m 值為100,即實參 m 的值為100,把這個值傳給函數 sum 時,形參 n 的.初值也為100,在函數執行過程中,形參 n 的值變為 5050。函數運行結束後,輸出實參 m 的值仍為100,可見實參的值不隨形參的變化而變化。
函數的返回值
函數的返回值是指函數被調用之後,執行函數體中的程序段所取得的值,可以通過return語句返回。
return語句的一般形式為:
return 表達式;
或者:
return (表達式);
例如:
return max;
return a+b;
return (100+200);
函數中可以有多個 return 語句,但每次調用只能有一個return 語句被執行,所以只有一個返回值。
一旦遇到 return 語句,不管後面有沒有代碼,函數立即運行結束,將值返回。例如:
int func(){ int a=100, b=200, c; return a+b; return a*b; return b/a;}
返回值始終 a+b 的值,也就是300。
沒有返回值的函數為空類型,用void進行説明。例如:
void func(){ printf("Hello world!");}
一旦函數的返回值類型被定義為 void,就不能再接收它的值了。例如,下面的語句是錯誤的:
int a = func();
為了使程序有良好的可讀性並減少出錯, 凡不要求返回值的函數都應定義為 void 類型。
-
2017年計算機二級C語言的應用
yjbys考試網為您整理了2017年計算機二級C語言的應用,更多計算機等級考試相關信息請訪問應屆畢業生計算機等級考試網。從前面對C語言的特點的分析中,不難看出C語言具有編程方便、語句簡練、功能很強、移植性好等優點,是編程者喜歡使用的一種結構化程序設計語言。C...
-
有關C語言中獲取文件狀態的相關函數小結
C語言stat()函數:獲取文件狀態頭文件:#include#include定義函數:intstat(constchar*file_name,structstat*buf);函數説明:stat()用來將參數file_name所指的文件狀態,複製到參數buf所指的結構中。下面是structstat內各參數的説明:structstat{dev_tst_dev;//device文...
-
c語言中多個if的用法
c語言中多個if的用法的用法你知道嗎?下面小編就跟你們詳細介紹下c語言中多個if的用法的用法,希望對你們有用。c語言中多個if的用法的用法如下:用if語句可以構成分支結構。它根據給定的條件進行判斷,以決定執行某個分支程序段。C語言的if語句有三種基本形式。語句的...
-
C,C++,C#三者的闡述和區別
一、關於C語言C語言是一種結構化編程語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言的表現能力和處理能力極...