目錄
- 一.簡介
- 二.函數傳回值
- 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);
}
五.猜你喜歡
- C 語言邏輯運算符
- C 語言三目運算符
- C 語言逗号表達式
- C 語言 sizeof 和 strlen 函數差別
- C 語言 strcpy 和 strcpy_s 函數差別
- C 語言 memcpy 和 memcpy_s 差別
- C 語言 數組定義和使用
- C 語言 數組周遊
- C 語言 數組下标越界
- C 語言 數組記憶體溢出
- C 語言 數組下标越界和記憶體溢出差別
- C 語言 二維數組定義和使用
- C 語言 二維數組行數和列數計算
- C 語言 指針聲明和定義
- C 語言 指針 p++ / p–
- C 語言 p++/§++/_(p++)/_p++
- C 語言 使用指針周遊數組
- C 語言 指針和數組差別
- C 語言 數組指針
- C 語言 指針數組
- C 語言 指針數組和數組指針差別
- C 語言 空指針 NULL
- C 語言 void 指針
- C 語言 野指針
- C 語言 函數聲明和定義