1. 前言
C語言里函數是非常重要的知識點,一個完整的C語言程序就是由主函數和各個子函數組成的,主函數調用子函數完成各個邏輯功能。
2. 函數在C語言里是什么概念?
函數相當于打包代碼的過程,程序代碼里如果有很多重復代碼,可以將重復代碼寫成一個函數,進行調用。
C語言程序里除了main函數(主)之外的函數都叫子函數,都屬于自定義函數。
3. 函數如何定義?如何編寫一個函數?
函數定于分為幾種情況:1. 有形參 2.無形參 3.有返回值 4. 無返回值
/*
<函數返回值類型> [函數的名稱](函數的形參類型)
{
函數體
}
*/
void func1(void)
{
}
int func2(int a)
{
return 12;
}
int func3(int a,int b,int c,.....)
{
return 12;
}
void func4(char *p)
{
}
4.自定義的函數如何調用和聲明?
#include
#include
void func1(void); //提前聲明函數
int main()
{
func1(); //調用函數
return 0;
}
//定義函數
void func1(void)
{
printf("hello\n");
}
如果在調用函數之前編寫函數體,就不需要聲明:
#include
#include
//定義函數
void func1(void)
{
printf("hello\n");
}
int main()
{
func1(); //調用函數
return 0;
}
5. 函數如何傳入形參并接收返回值?
#include
#include
//函數聲明
int func(int a,int b);
//int func(int,int);
int main()
{
int a;
a=func(10,20); //調用函數
printf("a=%d\n",a);
return 0;
}
//計算a+b結果值
int func(int a,int b)
{
int c;
c=a+b;
return c; //返回結果,并終止函數執行
}
6. return 語句作用
return 本身功能終止函數執行,順帶返回一個值給調用者。
語法: return [值或者是表達式或者不填];
表達式: 12<34
并且return 函數每次只能返回一個值。
#include
#include
//函數聲明
void func(void);
int main()
{
func();
return 0;
}
void func(void)
{
printf("1234567890\n");
return; //直接結束函數
printf("ABCD\n");
}
7. 變量的作用域:局部變量、全局變量、塊級變量
全局變量: 將變量定義在函數體外就屬于全局變量。
局部變量: 將變量定義在函數體內就是屬于局部變量。
塊級變量: 就是在語句范圍內定義的變量。if(a>b){int c;…. }
生命周期: 全局變量生命周期和main函數共存。
#include
#include
int a=100;
void func(void);
int main()
{
int a=200;
printf("a1=%d\n",a); //200 當局部變量和全局變量名稱相同的情況下優先使用局部變量
a=400;
printf("a2=%d\n",a); //400
func();
return 0;
}
void func(void)
{
printf("a3=%d\n",a); //100
}
8. 靜態變量
靜態變量聲明關鍵字: static
#include
#include
int func(int a);
int main()
{
int i;
for(i=0;i<5;i++)
{
printf("%d\n",func(i));//01234
}
return 0;
}
int func(int a)
{
//int b=0; 局部變量
static int b=0; //靜態變量(局部全局變量)--生命周期
b+=a;
return b;
}
//函數調用完畢之后,函數占用的空間都會釋放
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7604瀏覽量
136813 -
函數
+關注
關注
3文章
4331瀏覽量
62610
發布評論請先 登錄
相關推薦
C++語言入門教程之C++語言程序設計函數的詳細資料概述免費下載
本文檔的主要內容詳細介紹的是C++語言入門教程之C++語言程序設計函數的詳細資料概述免費下載內容包括了:1
發表于 09-20 14:51
?23次下載
51單片機實戰教程之C語言基礎(五 C語言函數及其定義)
雖然部分C語言函數的返回值與其參數存在對應關系,但是它與數學里的函數不是同一概念。有的書上把它定義為完成特定任務的代碼集合。
發表于 11-21 09:51
?31次下載
評論