0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言里函數(shù)的定義、子函數(shù)的使用及變量的作用域

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2022-04-28 11:23 ? 次閱讀

這篇介紹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,該語句只能返回一個值。

#include 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ù)練習(xí)作業(yè)

(1)編寫一個判斷某一年是否是閏年的函數(shù)。(條件: 能整除4且不能整除100 或者能整除400 )

#include 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ù)。

#include 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÷9  return (temp-32)*5/9.0;}

(4)封裝函數(shù),打印以下圖案:回文三角形,形參可以決定行數(shù)。

1

121

12321

1234321

(5)計算百分比與數(shù)據(jù)自動轉(zhuǎn)換

#include int main(void){  float data;  data=(10/60.0)*100;  //運算時,需要一個數(shù)據(jù)是浮點數(shù),運算中才可以使用浮點方式存儲  printf("data=%.0f%%
",data);  return 0;}

(6)函數(shù)返回值例子: 限定范圍

#include 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)先使用局部變量。

#include 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 只讀變量

#include 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)變量測試#include 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  ,1  return data;}

3.4 靜態(tài)全局變量

#include 
//int data;  全局變量,可以在其他.c文件引用static int data=0; //靜態(tài)全局變量-----局部變量//靜態(tài)全局變量: 表示該data變量不能被其他文件所引用。//防止全局變量,重命名。
int main(void){  return 0;}

3.5 靜態(tài)函數(shù)

#include static int func(void);  
int main(void){  func();  return 0;}
//定義靜態(tài)函數(shù),表示該函數(shù)只能在本文件使用。static int func(void){  printf("123
");}

3.6 變量的初始化值

#include static int data1;  int data2;
int main(void){  int data3; //局部變量  static int data4;  printf("data1=%d
",data1); //0  printf("data2=%d
",data2); //0  printf("data3=%d
",data3); //未知值  printf("data4=%d
",data4); //0    int 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

寫在最后:另外,對于準備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!

整理分享(多年學(xué)習(xí)的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!

原文標題:C語言干貨:函數(shù)知識詳解(變量的作用域,全局變量,靜態(tài)變量)

文章出處:【微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135850
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 作用域
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6099

原文標題:C語言干貨:函數(shù)知識詳解(變量的作用域,全局變量,靜態(tài)變量)

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    c語言變量作用和存儲類別

    c語言變量作用和存儲類別簡述,很不錯哦。
    發(fā)表于 07-14 17:12 ?0次下載

    c語言函數(shù)指針定義,指針函數(shù)函數(shù)指針的區(qū)別

     往往,我們一提到指針函數(shù)函數(shù)指針的時候,就有很多人弄不懂。下面就由小編詳細為大家介紹C語言函數(shù)指針,指針
    發(fā)表于 11-16 15:18 ?3606次閱讀

    C語言程序設(shè)計實用教程之函數(shù)詳細介紹和應(yīng)用

    本文檔的主要內(nèi)容詳細介紹的是C語言程序設(shè)計實用教程之函數(shù)詳細介紹和應(yīng)用內(nèi)容包括了:1 模塊化程序設(shè)計與函數(shù)2 函數(shù)
    發(fā)表于 10-31 18:04 ?2次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設(shè)計實用教程之<b class='flag-5'>函數(shù)</b>詳細介紹和應(yīng)用

    C語言實用教程之函數(shù)的詳細資料說明

    本文檔詳細介紹的是C語言實用教程之函數(shù)的詳細資料說明主要內(nèi)容包括了:1程序設(shè)計的藝術(shù)性,2函數(shù)定義與使用,3
    發(fā)表于 02-26 14:43 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>實用教程之<b class='flag-5'>函數(shù)</b>的詳細資料說明

    C語言函數(shù)的實驗詳細資料說明

    實驗?zāi)康暮鸵螅?)掌握C語言函數(shù)定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。(2)掌握
    發(fā)表于 12-06 08:00 ?4次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>函數(shù)</b>的實驗詳細資料說明

    C語言教程之函數(shù)的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是C語言教程之函數(shù)的詳細資料說明包括了:1 函數(shù)概述 ,2 函 數(shù) 定 義 ,3 函數(shù)的調(diào)用 ,4
    發(fā)表于 03-21 15:39 ?9次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>教程之<b class='flag-5'>函數(shù)</b>的詳細資料說明

    51單片機實戰(zhàn)教程之C語言基礎(chǔ)(五 C語言函數(shù)及其定義

    雖然部分C語言函數(shù)的返回值與其參數(shù)存在對應(yīng)關(guān)系,但是它與數(shù)學(xué)函數(shù)不是同一概念。有的書上把它定義
    發(fā)表于 11-21 09:51 ?31次下載
    51單片機實戰(zhàn)教程之<b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎(chǔ)(五 <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>函數(shù)</b>及其<b class='flag-5'>定義</b>)

    HS26Fxx-C_Demo_Code-中斷函數(shù)、中斷子函數(shù)定義與使用

    HS26Fxx-C_Demo_Code-中斷函數(shù)、中斷子函數(shù)定義與使用功能:定時器TC0中斷程序參考void __interrupt[0x08] Interrupt(void)//無
    發(fā)表于 12-27 19:25 ?9次下載
    HS26Fxx-<b class='flag-5'>C</b>_Demo_Code-中斷<b class='flag-5'>函數(shù)</b>、中斷<b class='flag-5'>子函數(shù)</b>的<b class='flag-5'>定義</b>與使用

    C語言變量作用

    函數(shù)的形參也是局部變量。全局變量–global variable大括號以外的變量,作用定義
    發(fā)表于 01-13 14:58 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>變量</b>的<b class='flag-5'>作用</b><b class='flag-5'>域</b>

    python變量作用

    (Built-in) 內(nèi)建作用 變量/函數(shù) 的查找順序: L – E – G –B 意思是,在局部找不到的,便去局部外的局部作用
    的頭像 發(fā)表于 03-03 16:50 ?1521次閱讀

    C語言總結(jié)_函數(shù)知識

    這篇文章介紹函數(shù)定義、函數(shù)的傳參、函數(shù)的返回值、變量作用
    的頭像 發(fā)表于 08-14 09:33 ?740次閱讀

    C語言_函數(shù)封裝、變量作用

    這篇文章介紹C語言函數(shù)封裝以及變量作用、字符串的相關(guān)實戰(zhàn)練習(xí)。字符串轉(zhuǎn)整數(shù)、整數(shù)轉(zhuǎn)字符串、浮點
    的頭像 發(fā)表于 08-14 09:48 ?1192次閱讀

    C語言-函數(shù)定義、聲明、傳參

    C語言函數(shù)是非常重要的知識點,一個完整的C語言程序就是由主
    的頭像 發(fā)表于 08-14 09:57 ?1883次閱讀

    C語言函數(shù)調(diào)用的形式及過程

    C語言函數(shù)調(diào)用時的數(shù)據(jù)傳遞 在調(diào)用有參函數(shù)時,主調(diào)函數(shù)和被調(diào)函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。
    的頭像 發(fā)表于 03-10 14:28 ?1567次閱讀

    空閑任務(wù)鉤子函數(shù)詳解

    的話就什么也不用管,鉤子函數(shù)是一個可選功能,可以通過宏定義來選擇使用哪個鉤子函數(shù),可選的鉤子函數(shù)如表所示: 鉤子函數(shù)的使用方法基本相同,用戶
    的頭像 發(fā)表于 07-30 10:57 ?1000次閱讀
    空閑任務(wù)鉤<b class='flag-5'>子函數(shù)</b>詳解