C 語(yǔ)言中的函數(shù)
函數(shù)是一段代碼塊,只有在被調(diào)用時(shí)才會(huì)運(yùn)行。
您可以將數(shù)據(jù)(稱為參數(shù))傳遞給函數(shù)。
函數(shù)用于執(zhí)行某些操作,它們對(duì)于重用代碼很重要:定義一次代碼,并多次使用。
預(yù)定義函數(shù)
事實(shí)證明,您已經(jīng)知道什么是函數(shù)了
例如,main()
是一個(gè)函數(shù),用于執(zhí)行代碼,printf()
也是一個(gè)函數(shù),用于向屏幕輸出/打印文本:
int main() {
printf("Hello World!");
return 0;
}
創(chuàng)建函數(shù)
要?jiǎng)?chuàng)建(通常稱為聲明)您自己的函數(shù),請(qǐng)指定函數(shù)的名稱,然后是括號(hào) ()
和花括號(hào) {}
:
語(yǔ)法:
void myFunction() {
// 要執(zhí)行的代碼
}
示例解釋:
-
myFunction()
是函數(shù)的名稱 -
void
意味著該函數(shù)沒(méi)有返回值 - 在函數(shù)內(nèi)(主體),添加代碼定義函數(shù)應(yīng)該做什么
調(diào)用函數(shù)
聲明的函數(shù)不會(huì)立即執(zhí)行。它們被“保存以便以后使用”,并在被調(diào)用時(shí)執(zhí)行。
要調(diào)用函數(shù),請(qǐng)編寫函數(shù)的名稱,后跟兩個(gè)括號(hào) ()
和分號(hào) ;
在以下示例中,當(dāng)調(diào)用 myFunction()
時(shí),它用于打印文本(操作):
// 創(chuàng)建一個(gè)函數(shù)
void myFunction() {
printf("我剛被執(zhí)行了!");
}
int main() {
myFunction(); // 調(diào)用函數(shù)
return 0;
}
// 輸出 "我剛被執(zhí)行了!"
函數(shù)可以被多次調(diào)用:
void myFunction() {
printf("我剛被執(zhí)行了!");
}
int main() {
myFunction();
myFunction();
myFunction();
return 0;
}
// 我剛被執(zhí)行了!
// 我剛被執(zhí)行了!
// 我剛被執(zhí)行了!
C 語(yǔ)言中的函數(shù)參數(shù)
參數(shù)和參數(shù)
可以通過(guò)參數(shù)將信息傳遞給函數(shù)。參數(shù)在函數(shù)中充當(dāng)變量。
參數(shù)在函數(shù)名后,括號(hào)內(nèi)指定。您可以添加任意數(shù)量的參數(shù),只需用逗號(hào)分隔即可:
語(yǔ)法:
returnType functionName(parameter1, parameter2, parameter3) {
// 要執(zhí)行的代碼
}
以下函數(shù)接受一個(gè)名為 name
的字符串參數(shù)。當(dāng)調(diào)用該函數(shù)時(shí),我們會(huì)傳遞一個(gè)名字,用于在函數(shù)內(nèi)部打印 “Hello”
和每個(gè)人的名字。
void myFunction(char name[]) {
printf("Hello %s\n", name);
}
int main() {
myFunction("Liam");
myFunction("Jenny");
myFunction("Anja");
return 0;
}
// Hello Liam
// Hello Jenny
// Hello Anja
當(dāng)參數(shù)傳遞給函數(shù)時(shí),它被稱為參數(shù)。因此,在上面的示例中:name
是參數(shù),而 Liam、Jenny
和 Anja
是參數(shù)。
多個(gè)參數(shù)
在函數(shù)內(nèi),您可以添加任意數(shù)量的參數(shù):
void myFunction(char name[], int age) {
printf("Hello %s. You are %d years old.\n", name, age);
}
int main() {
myFunction("Liam", 3);
myFunction("Jenny", 14);
myFunction("Anja", 30);
return 0;
}
// Hello Liam. You are 3 years old.
// Hello Jenny. You are 14 years old.
// Hello Anja. You are 30 years old.
請(qǐng)注意,當(dāng)您使用多個(gè)參數(shù)時(shí),函數(shù)調(diào)用必須具有與參數(shù)數(shù)目相同數(shù)量的參數(shù),并且參數(shù)必須按相同順序傳遞。
將數(shù)組作為函數(shù)參數(shù)傳遞
您還可以將數(shù)組傳遞給函數(shù):
void myFunction(int myNumbers[5]) {
for (int i = 0; i < 5; i++) {
printf("%d\n", myNumbers[i]);
}
}
int main() {
int myNumbers[5] = {10, 20, 30, 40, 50};
myFunction(myNumbers);
return 0;
}
示例解釋
函數(shù) (myFunction
) 以一個(gè)數(shù)組作為參數(shù) (int myNumbers[5]
),并使用 for
循環(huán)遍歷數(shù)組元素。
當(dāng)在 main
中調(diào)用函數(shù)時(shí),我們會(huì)傳遞 myNumbers
數(shù)組,它會(huì)輸出數(shù)組元素。
請(qǐng)注意,當(dāng)您調(diào)用函數(shù)時(shí),只需在將它作為參數(shù)傳遞時(shí)使用數(shù)組名稱即可 (myFunction(myNumbers)
)。但是,在函數(shù)參數(shù)中需要完整的數(shù)組聲明 (int myNumbers[5]
)。
返回值
以前的示例中使用的 void
關(guān)鍵字表示函數(shù)不應(yīng)返回值。如果想要函數(shù)返回一個(gè)值,您可以使用數(shù)據(jù)類型(例如 int
或 float
等)代替 void
,并在函數(shù)內(nèi)部使用 return
關(guān)鍵字:
int myFunction(int x) {
return 5 + x;
}
int main() {
printf("Result is: %d", myFunction(3));
return 0;
}
// 輸出 8 (5 + 3)
此示例返回具有兩個(gè)參數(shù)的函數(shù)的總和:
int myFunction(int x, int y) {
return x + y;
}
int main() {
printf("Result is: %d", myFunction(5, 3));
return 0;
}
// 輸出 8 (5 + 3)
您還可以將結(jié)果存儲(chǔ)在變量中:
int myFunction(int x, int y) {
return x + y;
}
int main() {
int result = myFunction(5, 3);
printf("Result is = %d", result);
return 0;
}
// 輸出 8 (5 + 3)
最后
為了方便其他設(shè)備和平臺(tái)的小伙伴觀看往期文章:
微信公眾號(hào)搜索:Let us Coding
,關(guān)注后即可獲取最新文章推送文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-776868.html
看完如果覺(jué)得有幫助,歡迎 點(diǎn)贊、收藏、關(guān)注文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-776868.html
到了這里,關(guān)于C 語(yǔ)言函數(shù)完全指南:創(chuàng)建、調(diào)用、參數(shù)傳遞、返回值解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!