天天看點

C語言 函數聲明和定義 - C語言零基礎入門教程

目錄

  • ​​一.簡介​​
  • ​二.函數傳回值​
  • ​​1.函數沒有傳回值​​
  • ​​2.函數有傳回值​​
  • ​三.函數參數​
  • ​​1.函數沒有參數​​
  • ​​2.函數有固定參數​​
  • ​​3.函數有不定長度參數​​
  • ​四.函數聲明和定義​
  • ​​1.函數聲明:不需要實作這個函數的功能​​
  • ​​2.函數定義:必須實作這個函數的功能​​
  • ​​五.猜你喜歡​​
零基礎 C/C++ 學習路線推薦 : ​​C/C++ 學習目錄​​ >> ​​C 語言基礎入門​​

一.簡介

​​C 語言​​中的函數是一段可以重複使用的代碼,用來獨立地完成某個功能,它可以接收使用者傳遞的參數,也可以不接收;将代碼段封裝成函數的過程叫做函數定義。

/*
dataType 是傳回值類型,它可以是C語言中的任意資料類型,例如: int、float、char 等。

functionName 是函數名,它是辨別符的一種,命名規則和辨別符相同。函數名後面的括号( )不能少。

body 是函數體,它是函數需要執行的代碼,是函數的主體部分。即使隻有一個語句,函數體也要由{ }包圍。

*/

dataType  functionName()
{
    //body
}
      

如果有傳回值,在函數體中使用 ​

​return​

​ 語句傳回。​

​return​

​ 出來的資料的類型要和 ​

​dataType​

​ 一樣。

二.函數傳回值

1.函數沒有傳回值

如果函數沒有傳回值,函數名前面用 ​

​void​

​ 修飾,例如:

void func(); //聲明一個函數,該函數沒有傳回值
      

2.函數有傳回值

如果​​函數​​有傳回值,函數名前面用傳回值類型,可以用 ​​int / float / double /​​ ​​char​​ 等等修飾,例如:

int func1();          //聲明一個函數,該函數傳回值是整數int類型
float func2();        //聲明一個函數,該函數傳回值是浮點數float類型
double func3();       //聲明一個函數,該函數傳回值是浮點數double類型
char func4();         //聲明一個函數,該函數傳回值是字元char類型
      

三.函數參數

1.函數沒有參數

函數沒有參數,就表示沒有參數清單,例如:

int func1();    //聲明一個函數,該函數傳回值是整數int類型
float func2();  //聲明一個函數,該函數傳回值是浮點數float類型
      

2.函數有固定參數

dataType  functionName( dataType1 param1, dataType2 param2 ...)
{
    //body
}
      

​dataType1 param1, dataType2 param2 ...​

​是參數清單。函數可以隻有一個參數,也可以有多個,多個參數之間由,分隔。參數本質上也是變量,定義時要指明類型和名稱。與無參函數的定義相比,有參函數的定義僅僅是多了一個參數清單,例如:

int func1(int x);          //聲明一個函數,該函數傳回值是整數int類型
float func2(int x,int y);  //聲明一個函數,該函數傳回值是浮點數float類型
      

3.函數有不定長度參數

函數的不定長參數,指函數的參數個數不固定,可以是兩個,也可以是三個或者更多,例如最常見的 ​​printf 函數​​:

printf("%s","hello world");
printf("%d-%d-%d",1,2,3);
      

關于函數的不定長參數,這裡暫時不做講解,後面文章再做詳細介紹;

四.函數聲明和定義

函數聲明隻是一個空殼,不會有具體的函數實作,而定義要實作函數的實作;

1.函數聲明:不需要實作這個函數的功能

int add(int x,int y); //隻需要聲明即可,不需要實作這個函數的功能
      

2.函數定義:必須實作這個函數的功能

int add(int x,int y) 需要實作這個函數的功能
{
    return (x+y);
}
      

五.猜你喜歡

  1. ​​C 語言邏輯運算符​​
  2. ​​C 語言三目運算符​​
  3. ​​C 語言逗号表達式​​
  4. ​​C 語言 sizeof 和 strlen 函數差別​​
  5. ​​C 語言 strcpy 和 strcpy_s 函數差別​​
  6. ​​C 語言 memcpy 和 memcpy_s 差別​​
  7. ​​C 語言 數組定義和使用​​
  8. ​​C 語言 數組周遊​​
  9. ​​C 語言 數組下标越界​​
  10. ​​C 語言 數組記憶體溢出​​
  11. ​​C 語言 數組下标越界和記憶體溢出差別​​
  12. ​​C 語言 二維數組定義和使用​​
  13. ​​C 語言 二維數組行數和列數計算​​
  14. ​​C 語言 指針聲明和定義​​
  15. ​​C 語言 指針 p++ / p–​​
  16. ​​C 語言 p++/§++/_(p++)/_p++​​
  17. ​​C 語言 使用指針周遊數組​​
  18. ​​C 語言 指針和數組差別​​
  19. ​​C 語言 數組指針​​
  20. ​​C 語言 指針數組​​
  21. ​​C 語言 指針數組和數組指針差別​​
  22. ​​C 語言 空指針 NULL​​
  23. ​​C 語言 void 指針​​
  24. ​​C 語言 野指針​​
  25. ​​C 語言 函數聲明和定義​​

繼續閱讀