這篇介紹C語言里函數(shù)的定義、子函數(shù)的使用。接著介紹變量的作用域,定義全局變量、靜態(tài)變量、只讀變量、變量初始化等等。
一、函數(shù)定義
//定義一個函數(shù)int func(int a,int b){}<函數(shù)的返回值類型> <函數(shù)名稱>(函數(shù)的形參列表,....){函數(shù)代碼主體部分;}
<函數(shù)的返回值類型>: 返回值類型可以是C語言支持任何類型。基本數(shù)據(jù)類型、指針、結(jié)構(gòu)體、枚舉…
如果函數(shù)執(zhí)行完畢,不需要返回值,可以將函數(shù)返回值類型聲明為空類型。Void
函數(shù)名稱 :不能與庫函數(shù)名稱沖突,命名規(guī)則與變量命名規(guī)則一樣。
函數(shù)的形參列表 :函數(shù)在執(zhí)行行傳入的參數(shù),類型與返回值類型定義方法一樣。
如果有多個形參,可以使用逗號隔開
函數(shù)的返回值: 如果函數(shù)執(zhí)行完畢之后需要向調(diào)用處返回數(shù)據(jù),可以使用return,該語句只能返回一個值。
int func(int,int); //聲明func函數(shù)//int func(int a,int b);//聲明func函數(shù)int main(void){int a;a=func(12.34,56.78); //形參傳入之后,會轉(zhuǎn)為整型printf("a=%d ",a);return 0;}//定義一個函數(shù)int func(int a,int b){int c;c=a+b;return c; //給調(diào)用者返回結(jié)果}
二、函數(shù)練習作業(yè)
(1)編寫一個判斷某一年是否是閏年的函數(shù)。(條件: 能整除4且不能整除100 或者能整除400 )
int func_year(int year); //聲明函數(shù)int main(void){int year; //c89標準int err=0;printf("輸入一個年份:");scanf("%d",&year);err=func_year(year);//調(diào)用函數(shù)if(err==1){printf("閏年! ");}else if(err==0){printf("平年! ");}else{printf("輸入的年份錯誤! ");}return 0;}
(2)該函數(shù)由主函數(shù)調(diào)用,判斷平年和閏年。
/*函數(shù)功能: 判斷平年和閏年返回值 : 0表示平年,1表示閏年,負數(shù)表示錯誤*/int func_year(int year){if(year<1900)return -1; //加一個限制條件if((year%4==0&&year%100!=0)||year%400==0){return 1;}return 0;}
(3)輸入一個華氏溫度,輸出攝氏溫度,計算公式為(華氏度-32)×5÷9 要求結(jié)果保留兩位小數(shù)。
float func_temp(float temp); //聲明函數(shù)int main(void){float temp;printf("輸入一個溫度值:");scanf("%f",&temp);printf("temp=%.2f ",func_temp(temp));return 0;}/*函數(shù)功能: 計算溫度返回值 : 攝氏度*/float func_temp(float temp){//(華氏度-32)×5÷9return (temp-32)*5/9.0;}
(4)封裝函數(shù),打印以下圖案:回文三角形,形參可以決定行數(shù)。
1
121
12321
1234321
(5)計算百分比與數(shù)據(jù)自動轉(zhuǎn)換
int main(void){float data;data=(10/60.0)*100; //運算時,需要一個數(shù)據(jù)是浮點數(shù),運算中才可以使用浮點方式存儲printf("data=%.0f%% ",data);return 0;}
(6)函數(shù)返回值例子: 限定范圍
int func(int a);int main(void){printf("%d ",func(200));return 0;}int func(int a){return (a==100); //限定范圍值為0和1}
三、 變量的作用域
3.1 全局變量和局部變量
const int c; //定義只讀變量static int b; //定義靜態(tài)變量
說明: 變量定義作用域分為全局變量和局部變量。
1.局部變量和全局變量名稱可以相同。
2.如果局部變量名稱與全局變量名稱相同,優(yōu)先使用局部變量。
void func(int);int data=123; //全局變量(公用變量)int main(void){int data=456; //局部變量printf("data1=%d ",data);func(666);return 0;}void func(int data){printf("data2=%d ",data);}
3.2 只讀變量
void func(int);const int data=888; //只讀變量int main(void){//data=666; 錯誤的printf("%d ",data);return 0;}void func(int data){printf("data2=%d ",data);}
3.3 靜態(tài)變量
?靜態(tài)變量測試int func(void);int main(void){int i,data;for(i=0;i<5;i++){data=func();}printf("data=%d ",data);return 0;}int func(void){//int data=0; //局部變量,生命周期隨著函數(shù)調(diào)用結(jié)束而終止。static int data=0; //靜態(tài)變量,生命周期與main函數(shù)一樣。//static int data=0 只有第一次執(zhí)行有效data++; //data=data+1 ,1return data;}
3.4 靜態(tài)全局變量
//int data; 全局變量,可以在其他.c文件引用static int data=0; //靜態(tài)全局變量-----局部變量//靜態(tài)全局變量: 表示該data變量不能被其他文件所引用。//防止全局變量,重命名。int main(void){return 0;}
3.5 靜態(tài)函數(shù)
static int func(void);int main(void){func();return 0;}//定義靜態(tài)函數(shù),表示該函數(shù)只能在本文件使用。static int func(void){printf("123 ");}
3.6 變量的初始化值
static int data1;int data2;int main(void){int data3; //局部變量static int data4;printf("data1=%d ",data1); //0printf("data2=%d ",data2); //0printf("data3=%d ",data3); //未知值printf("data4=%d ",data4); //0int cnt;//cnt++;/*for(i=0;i<5;i++){if(xxxx)data3|=0x1;data3<<=1;}*/return 0;}
-----------------------------------
著作權(quán)歸作者所有:來自51CTO博客作者DS小龍哥,原文鏈接:https://blog.51cto.com/u_11822586/5256783
寫在最后:另外,對于準備學習C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
原文標題:C語言干貨:函數(shù)知識詳解(變量的作用域,全局變量,靜態(tài)變量)
文章出處:【微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145569 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4417瀏覽量
67499 -
作用域
+關(guān)注
關(guān)注
0文章
6瀏覽量
6274
原文標題:C語言干貨:函數(shù)知識詳解(變量的作用域,全局變量,靜態(tài)變量)
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
c語言函數(shù)指針定義,指針函數(shù)和函數(shù)指針的區(qū)別
C語言程序設(shè)計實用教程之函數(shù)詳細介紹和應(yīng)用
C語言實用教程之函數(shù)的詳細資料說明
C語言函數(shù)的實驗詳細資料說明
C語言教程之函數(shù)的詳細資料說明
C語言中局部變量和全局變量
HS26Fxx-C_Demo_Code-中斷函數(shù)、中斷子函數(shù)的定義與使用
python變量的作用域
C語言_函數(shù)封裝、變量的作用域
C語言函數(shù)調(diào)用的形式及過程
空閑任務(wù)鉤子函數(shù)詳解
C語言里函數(shù)的定義、子函數(shù)的使用及變量的作用域
評論