1. 前言
C語(yǔ)言里函數(shù)是非常重要的知識(shí)點(diǎn),一個(gè)完整的C語(yǔ)言程序就是由主函數(shù)和各個(gè)子函數(shù)組成的,主函數(shù)調(diào)用子函數(shù)完成各個(gè)邏輯功能。
2. 函數(shù)在C語(yǔ)言里是什么概念?
函數(shù)相當(dāng)于打包代碼的過(guò)程,程序代碼里如果有很多重復(fù)代碼,可以將重復(fù)代碼寫成一個(gè)函數(shù),進(jìn)行調(diào)用。
C語(yǔ)言程序里除了main函數(shù)(主)之外的函數(shù)都叫子函數(shù),都屬于自定義函數(shù)。
3. 函數(shù)如何定義?如何編寫一個(gè)函數(shù)?
函數(shù)定于分為幾種情況:1. 有形參 2.無(wú)形參 3.有返回值 4. 無(wú)返回值
/*
<函數(shù)返回值類型> [函數(shù)的名稱](函數(shù)的形參類型)
{
函數(shù)體
}
*/
void func1(void)
{
}
int func2(int a)
{
return 12;
}
int func3(int a,int b,int c,.....)
{
return 12;
}
void func4(char *p)
{
}
4.自定義的函數(shù)如何調(diào)用和聲明?
#include
#include
void func1(void); //提前聲明函數(shù)
int main()
{
func1(); //調(diào)用函數(shù)
return 0;
}
//定義函數(shù)
void func1(void)
{
printf("hello\n");
}
如果在調(diào)用函數(shù)之前編寫函數(shù)體,就不需要聲明:
#include
#include
//定義函數(shù)
void func1(void)
{
printf("hello\n");
}
int main()
{
func1(); //調(diào)用函數(shù)
return 0;
}
5. 函數(shù)如何傳入形參并接收返回值?
#include
#include
//函數(shù)聲明
int func(int a,int b);
//int func(int,int);
int main()
{
int a;
a=func(10,20); //調(diào)用函數(shù)
printf("a=%d\n",a);
return 0;
}
//計(jì)算a+b結(jié)果值
int func(int a,int b)
{
int c;
c=a+b;
return c; //返回結(jié)果,并終止函數(shù)執(zhí)行
}
6. return 語(yǔ)句作用
return 本身功能終止函數(shù)執(zhí)行,順帶返回一個(gè)值給調(diào)用者。
語(yǔ)法: return [值或者是表達(dá)式或者不填];
表達(dá)式: 12<34
并且return 函數(shù)每次只能返回一個(gè)值。
#include
#include
//函數(shù)聲明
void func(void);
int main()
{
func();
return 0;
}
void func(void)
{
printf("1234567890\n");
return; //直接結(jié)束函數(shù)
printf("ABCD\n");
}
7. 變量的作用域:局部變量、全局變量、塊級(jí)變量
全局變量: 將變量定義在函數(shù)體外就屬于全局變量。
局部變量: 將變量定義在函數(shù)體內(nèi)就是屬于局部變量。
塊級(jí)變量: 就是在語(yǔ)句范圍內(nèi)定義的變量。if(a>b){int c;…. }
生命周期: 全局變量生命周期和main函數(shù)共存。
#include
#include
int a=100;
void func(void);
int main()
{
int a=200;
printf("a1=%d\n",a); //200 當(dāng)局部變量和全局變量名稱相同的情況下優(yōu)先使用局部變量
a=400;
printf("a2=%d\n",a); //400
func();
return 0;
}
void func(void)
{
printf("a3=%d\n",a); //100
}
8. 靜態(tài)變量
靜態(tài)變量聲明關(guān)鍵字: 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; //靜態(tài)變量(局部全局變量)--生命周期
b+=a;
return b;
}
//函數(shù)調(diào)用完畢之后,函數(shù)占用的空間都會(huì)釋放
審核編輯:湯梓紅
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136680 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62569
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論