App下載

從零開始學習C語言丨函數(shù)的定義、調用和參數(shù)

三玹 2022-11-10 15:39:49 瀏覽數(shù) (2981)
反饋
原文: https://mp.weixin.qq.com/s?__biz=Mzg3OTc3MjcyOQ==&mid=2247483811&idx=1&sn=502c42902c66c12a3df425efd34d70fb&chksm=cf7e14f5f8099de30c632eafec286b1d33e12d1188c9ad3427d18223f71bcb2c3dc4ce629098&scene=178&cur_album_id=2588823761982849025#rd

 本文發(fā)布于微信公眾號:三玹

在前面的文章中,我們其實有見過函數(shù),就是C語言程序有且僅有一個的主函數(shù) main()。因此,可以說C語言程序中至少都會有一個函數(shù)。
那么,接下來就來學習一下C語言中函數(shù)的知識點。
什么是函數(shù)
函數(shù),也被稱為方法,是一組一起執(zhí)行一個任務的語句。
打一個比喻:
做菜是需要洗菜、切菜、炒菜、然后把菜盛出來端上桌。
如果沒有函數(shù),代碼上我們每次就都要把這些步驟一個一個地寫清楚,做一道菜寫一堆這樣的步驟。
但是有了函數(shù)就不一樣了。我把這些步驟都整合在一起,把它變成一個函數(shù),等我需要做菜的時候,就只需要把這個函數(shù)拿出來用。誒,這就比每次都要寫一大堆東西輕松得多,就非常方便!
C語言中函數(shù)的定義方式:
type function(parameter list)
{
  // body
}
1、type:函數(shù)返回的類型,如 int、float、char等等,這類有明確返回類型的函數(shù),結果都必須有 return 關鍵字返回相應類型的數(shù)據。如果函數(shù)不返回類型,則可以使用 void 空類型來定義函數(shù)。
2、function:函數(shù)的名稱。名稱必須符合標識符的規(guī)則,同時建議函數(shù)名稱可以按照駝峰式寫法(大駝峰:YouHaveMoney 或者小駝峰:tomorrowIsBetter)。
3、parameter:函數(shù)的參數(shù)列表,可以有,可以沒有,實際情況根據函數(shù)的主體內容進行決定。相當于一個占位符。
4、body:函數(shù)的主體部分。即把所有做菜的步驟都包括在這里面,當調用函數(shù)的時候,就會順序執(zhí)行這里面的內容。
函數(shù)的調用
函數(shù)編寫之后,想進行實際應用,那就需要調用。如果不調用,函數(shù)寫了跟沒寫一樣。他就在那里,你不呼喚他,他是沒有回應的。
C語言中的函數(shù)是通過函數(shù)名();來進行調用的。
#include<stdio.h>int main(){  HelloWorld();  return 0;}void HelloWorld(){  printf("Hello World\n");}
運行結果:Hello World
那么有人就要說,程序是按順序執(zhí)行的,那我直接把 HelloWorld 這個函數(shù)直接寫在主函數(shù)里面,那么它運行的時候不也是按順序執(zhí)行,是不是就不用調用了。
不可不可,萬萬不可!
在C語言當中,循環(huán)是可以嵌套的、判斷也是可以嵌套的,但是函數(shù)是不能嵌套定義的。函數(shù)的定義只能在函數(shù)體之外進行定義,無法在函數(shù)體內定義新的函數(shù)。
不過可以嵌套使用,在一個函數(shù)里面調用另外一個函數(shù),就可以實現(xiàn)函數(shù)的嵌套使用。
例如:
#include<stdio.h>
int main(){
  func2();
  return 0;
}
void func1(){
  printf("讀者都是英俊瀟灑!美若天仙!\n");
}
void func2(){
  func1();
  printf("求個點贊、收藏和分享,可好?");
}
運行結果:
讀者都是英俊瀟灑!美若天仙!
求個點贊、收藏和分享,可好?
函數(shù)的調用還有一種方式,叫做遞歸調用,俗一點講就是我自己用自己。這一個遞歸稍微講起來有點復雜,就暫且不在這里作詳細展開,后面涉及到遞歸的時候再說說。
參數(shù)
前文提到,參數(shù)的在函數(shù)中相當于是一個占位符的作用。
就比如數(shù)學中的函數(shù),x + y = 10。
x 和 y 就是函數(shù)中的參數(shù),它實際是什么值我不知道,但我知道它們兩個相加是等于10。那么 x 和 y 的實際值可以有無限種可能,x 和 y 在這里就是占個位置,表示一個虛的數(shù)值。
就例如,我們要計算兩個值相加的值,但是不知道用戶實際應用要輸入什么值。那這里就可以使用參數(shù)來占個位置。
int add(int a, int b){
  return a+b;
}
在程序中,參數(shù)是有兩種分類的:形式參數(shù)和實際參數(shù)。
形式參數(shù),顧名思義,就是形式上的,做個樣子,沒有實際X用。
一般,函數(shù)定義時候的參數(shù),就叫做形式參數(shù)。它們沒有實際的值,只是擺個樣子,在這里占個位置。
實際參數(shù),則是相反的,它是實在的,有內容的。
一般是在函數(shù)調用的時候,傳遞給函數(shù)的值就叫做實際參數(shù)。
#include<stdio.h>int main(){  int x = 5;  int y = 9;  int z = add(x, y);  printf("%d", z);  return 0;}int add(int a, int b){  return a+b;}
就還是上面這個加法的例子。
在這里面,add 函數(shù)定義時,變量 a 和 b 就是形式參數(shù)。
在主函數(shù)中調用 add 函數(shù)時,傳入的變量 x 和 y 就是實際參數(shù)。


C

2 人點贊