------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------
一、基本概念
1>什麼是函數
任何一個C語言程序都是由一個或者多個程序段(小程序)構成的,每個程序段都有自己的功能,我們一般稱這些程序段爲“函數”。所以,你可以說C語言程序是由函數構成的。
2>函數名
一般來說,我們會將不同的功能交給不同的函數去實現。爲了方便調用和區分這些函數,我們需要爲每一個函數都起一個唯一的名稱,函數的命名必須按照標識符命名規則。利用函數名就可以調用到對應的函數。
二、函數的定義
定義函數的目的就是爲了寫清楚你這個函數是幹啥用的,裏面包含了哪些代碼。函數的定義格式如下:
返回值類型 函數名(形式參數列表)
{
函數體
}
三、形式參數和實際參數
1>基本概念
形式參數:在定義函數時,函數名後面的小括號()中定義的變量稱爲形式參數,簡稱形參
實際參數:在調用函數時傳入的值稱爲實際參數,簡稱實參
2>調用函數時傳遞的實參個數 必須和 函數的形參個數必須保持一致
3>當使用基本數據類型作爲實參時,實參和形參之間只是值傳遞,修改形參的值並不影響到實參
4>函數可以沒有形參
四、返回值類型
1>如果沒有返回值,應該用void表示返回值類型;如果一個函數沒有返回值,最後面的return語句可以省略
2>如果一個函數沒有明確寫出返回值類型,那麼代表這個函數的返回值類型是int
3>如果有返回類型,也可以不返回(不推薦這麼寫)
五、函數定義注意點
1>函數名不能重複
2>每一個函數都應該獨立定義,不能嵌套定義
如果有函數的聲明,沒有函數的定義
1> 編譯可以通過,因爲編譯器只會檢測語法合不合理,並不會檢測函數有沒有定義
2> 鏈接報錯,因爲鏈接的時候會檢測函數是否定義
六、函數程序
1、簡單的函數調用
#include <stdio.h>
int printLine()
{
printf("-------------\n");
return 0;
}
int average(int num1, int num2)
{
return (num1 + num2)/2;
}
int main()
{
//printLine();
int a = 10;
int b = 9;
int c = average(a, b);
printf("c is %d\n", c);
int a1 = 11;
int b1 = 20;
int d = average(a1, b1);
printf("d is %d\n", d);
return 0;
}
2、遞歸操作
//遞歸舉例
#include<stdio.h>
int fun(int n)
{
if (n==1)
return 1;
else
return n*fun(n-1);
}
void main()
{
int n;
scanf("%d", &n);
printf("the n! is %d: \n",fun(n));
}
------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------