一、學習目標
- 了解C語言的自定義函式的使用方法
- 了解C語言自定義函式的傳參
- 了解C語言自定義函式的回傳值
目錄
預備第一篇,使用軟體介紹在這一篇,C++與C使用的軟體是一樣的,查看這篇即可:《軟體介紹》
想了解編譯原理和學習方法點這篇,學習方法和一些原理C++與C都是相同的《脫離學習誤區》
《零基礎看得懂的C++入門教程 》——(1)第一個C++程式就讓你知其所以然
《零基礎看得懂的C++入門教程 》——(2)什么是資料型別、變數?一看便會
《零基礎看得懂的C++入門教程 》——(3)運算式花樣挺多鴨
《零基礎看得懂的C++入門教程 》——(4)條件判斷原來如此
《零基礎看得懂的C++入門教程 》——(5) 容我套個娃 回圈
推薦
1.《備受好評的看得懂的C語言入門教程》
歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~

二、了解C語言自定義函式的使用方法
在C++中函式是可以自定義的,根據自己的需求實作不同的函式方便在之后開發中使用,
2.1 了解自定義函式的使用方法
自定義函式由幾部分構成,最簡單的函式有回傳型別修飾符、函式名以及函式體,回傳型別的修飾符為型別修飾符,如int、float、char等;回傳型別修飾符一般放在函式名前,函式名的定義方式與變數名定義規范類似;自定義函式的函式體則是在一對花括號內的代碼內容,
我們先看一個示例:
#include<iostream>
using namespace std;
void func(){
cout<<"這里是自定義函式"<<endl;
}
int main() {
func();
}
以上代碼中,自定義函式為:
void func(){
cout<<"這里是自定義函式"<<endl;
}
在以上對于函式的描述中,我們得知最簡單的函式構成為型別修飾符、函式名以及函式體,以上函式的型別修飾符為void,void表示當前函式沒有回傳值(什么是回傳值接下來會說到),函式名為func,函式名后接著一堆圓括號,圓括號后有一對花括號,花括號內則是函式體,當前函式體內的內容為輸出"這里是自定義函式"這一個提示,當前函式的功能也就是顯示 "這里是自定義函式"這個內容了,
在main中,呼叫了自定義函式func,之前我們已經知道,函式使用方式為函式名后接一堆圓括號,所以代碼寫為 func();,用分號結束,呼叫后將會執行函式中的代碼將會顯示 "這里是自定義函式",
運行結果如下:

細心的同學發現,其實我們的main也是一個函式,我們使用int修飾main函式,不過main是系統函式表示當前代碼的入口,我們所撰寫的代碼將會從main函式第一條陳述句開始運行,
2.2 了解有參函式的使用方法
有過C語言經驗的同學知道,我們經常使用printf函式,該函式我們傳入什么值將會在程式運行時顯示什么值;所傳入的值稱為引數;打個比方,洗衣機的功能是洗衣服,我們會丟衣服進去,這個衣服就是引數;再或者我們做飯的時候使用電飯鍋,電飯鍋需要的原料是米,這個米就是引數;我們自定義的函式也可以實作這個功能,例如我想顯示變數a的值,只需要修改一下上一節的代碼即可實作,代碼如下:
#include<iostream>
using namespace std;
void func(int a){
cout<<"變數a 的值是:"<<a<<endl;
}
int main() {
int a=10;
func(a);
}
以上代碼在func函式的圓括號中添加了int a,int a表示func函式接收一個整數型別的變數a;在func函式中,使用printf函式輸出了變數a的值,在函式中使用的a變數在func(int a)中表示宣告,具體值需要在使用函式時傳入,使用函式傳參只需要函式名后接的圓括號中傳入值,則表示把值賦值給func圓括號中的變數a,如func(a); 則表示把外部的a變數值賦值給func函式的a變數,
在以上函式中,func(int a)的變數a與main函式的a是有區別的;就好比你們學校校長叫做小明,你們班有個學生叫做小明,在你們班級平常稱呼中,小明指的是你們班級的小明,并不是校長;函式也一樣,在函式中,使用的a單單值函式內的a,func(int a)中的a,以及接下來函式內使用的a只代表當前函式,
結果如下:

當然傳入的值也可以寫為具體的值,代碼如下:
#include<iostream>
using namespace std;
void func(int a){
cout<<"傳入的值是:"<<a<<endl;
}
int main() {
int a=10;
func(99);
}
運行結果如下:

2.2 了解有多個參函式的使用方法
以上了解了一個引數的自定義函式,接下來了解多個引數的自定義引數使用方法,查看示例:
#include<iostream>
using namespace std;
void func(int a,int b){
cout<<"a+b的值是:"<<a+b<<endl;
}
int main() {
int a1=10,b1=11;
func(a1,b1);
}
以上代碼中,func函式接收兩個引數,一個是a,一個是b,兩個引數之間使用逗號間隔,func自定義函式中則會輸出兩個數相加的結果,在main函式中,定義了兩個變數一個為a1,一個為b1,使用func后傳入兩個變數,它們之間使用逗號間隔,
運行結果如下:

2.2 了解自定義函式回傳值
我們修改上一節示例,現在需求更換為只需要得到兩個值做加法運算后的值,不需要在函式中輸出,只需要在外部輸出結果,代碼如下:
#include<iostream>
using namespace std;
int func(int a,int b){
int c=a+b ;
return c;
}
int main() {
int a=10,b=11;
int c=func(a,b);
cout<<c<<endl;
}
以上代碼中,void func 修改成了int func,void表示當前函式無回傳值,使用int 表示當前函式將會回傳一個整數值表示當前函式最終的結果,
在函式體中定義了一個整數型別變數c,并且直接賦值為a+b的結果;最后使用return關鍵字表示把變數c的值給回傳出去,在外部需要使用一個變數接收如 int c=func(a,b); ,這時變數c就得到了func函式回傳的值,在以上代碼中使用cout查看c的結果,
運行結果如下:

當然也可以直接輸出函式的結果值:
#include<iostream>
using namespace std;
int func(int a,int b){
int c=a+b ;
return c;
}
int main() {
int a=10,b=11;
cout<<func(a,b)<<endl;
}
想要再簡便代碼一點也可以這樣:
#include<iostream>
using namespace std;
int func(int a,int b){
return a+b;
}
int main() {
int a=10,b=11;
cout<<func(a,b)<<endl;
}
描述函式回傳值的修飾符一定要與回傳值型別一致,否則將會出現無法預料的結果或者直接報錯,

以上代碼我使用void修飾了一個有回傳值的函式,編譯器直接報錯提示我的函式是有回傳值的但是用了void修飾,
三、總結
通過以上描述與講解,我們了解了以下幾點內容:
- 了解了自定義函式的基本使用方法
- 了解了自定義函式型別修飾符與變數型別修飾符一致
- 了解了有參自定義函式的使用方法
- 了解了自定義函式有回傳值的使用方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/229245.html
標籤:其他
