二、函數(shù)的值
函數(shù)的值是指函數(shù)被調(diào)用之后, 執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值,調(diào)用例5.1的max函數(shù)取得的最大數(shù)等。對函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:
1. 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,并返回給主調(diào)函數(shù)。 在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return 語句被執(zhí)行, 因此只能返回一個函數(shù)值。
2. 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。 如果兩者不一致,則以函數(shù)類型為準(zhǔn),自動進行類型轉(zhuǎn)換。
3. 如函數(shù)值為整型,在函數(shù)定義時可以省去類型說明。
4. 不返回函數(shù)值的函數(shù),可以明確定義為“空類型”, 類型說明符為“void”。如例5.3中函數(shù)s并不向主函數(shù)返函數(shù)值,因此可定義為:
void s(int n)
{ ……
}
一旦函數(shù)被定義為空類型后, 就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義s為空類型后,在主函數(shù)中寫下述語句 sum=s(n); 就是錯誤的。為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。函數(shù)說明在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應(yīng)對該被調(diào)函數(shù)進行說明, 這與使用變量之前要先進行變量說明是一樣的。 在主調(diào)函數(shù)中對被調(diào)函數(shù)作說明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類型, 以便在主調(diào)函數(shù)中按此種類型對返回值作相應(yīng)的處理。 對被調(diào)函數(shù)的說明也有兩種格式,一種為傳統(tǒng)格式,其一般格式為: 類型說明符 被調(diào)函數(shù)名(); 這種格式只給出函數(shù)返回值的類型,被調(diào)函數(shù)名及一個空括號。
這種格式由于在括號中沒有任何參數(shù)信息, 因此不便于編譯系統(tǒng)進行錯誤檢查,易于發(fā)生錯誤。另一種為現(xiàn)代格式,其一般形式為:
類型說明符 被調(diào)函數(shù)名(類型 形參,類型 形參…);
或為:
類型說明符 被調(diào)函數(shù)名(類型,類型…);
現(xiàn)代格式的括號內(nèi)給出了形參的類型和形參名, 或只給出形參類型。這便于編譯系統(tǒng)進行檢錯,以防止可能出現(xiàn)的錯誤。例5.1 main函數(shù)中對max函數(shù)的說明若
用傳統(tǒng)格式可寫為:
int max();
用現(xiàn)代格式可寫為:
int max(int a,int b);
或?qū)憺?
int max(int,int);
相關(guān)推薦:計算機等考二級C語言備考:C語言/C++編譯過程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |