中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

凱天建設(shè)發(fā)展集團(tuán)有限公司網(wǎng)站盤(pán)多多網(wǎng)盤(pán)資源庫(kù)

凱天建設(shè)發(fā)展集團(tuán)有限公司網(wǎng)站,盤(pán)多多網(wǎng)盤(pán)資源庫(kù),洛陽(yáng)網(wǎng)站建設(shè)漢獅怎么樣,網(wǎng)站建設(shè)與制作價(jià)格前言:如果把所有的程序代碼都寫(xiě)在一個(gè)主函數(shù)(main函數(shù))中,就會(huì)使主函數(shù)變得龐雜、頭緒不清,使閱讀和維護(hù)程序變得困難。此外,有時(shí)程序中要多次實(shí)現(xiàn)某一功能,如果重新編寫(xiě)實(shí)現(xiàn)此功能就會(huì)使得程序冗長(zhǎng)、不精煉。 &#x…

前言:如果把所有的程序代碼都寫(xiě)在一個(gè)主函數(shù)(main函數(shù))中,就會(huì)使主函數(shù)變得龐雜、頭緒不清,使閱讀和維護(hù)程序變得困難。此外,有時(shí)程序中要多次實(shí)現(xiàn)某一功能,如果重新編寫(xiě)實(shí)現(xiàn)此功能就會(huì)使得程序冗長(zhǎng)、不精煉。

💖 博主CSDN主頁(yè):衛(wèi)衛(wèi)衛(wèi)的個(gè)人主頁(yè) 💞
👉 專(zhuān)欄分類(lèi):C程序設(shè)計(jì)譚浩強(qiáng)版本 👈
💯代碼倉(cāng)庫(kù):衛(wèi)衛(wèi)周大胖的學(xué)習(xí)日記💫
💪關(guān)注博主和博主一起學(xué)習(xí)!一起努力!
在這里插入圖片描述


目錄

    • 怎樣定義函數(shù)
      • 為什么要定義函數(shù)
    • 調(diào)用函數(shù)
      • 函數(shù)調(diào)用的形式
      • 函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞
      • 函數(shù)調(diào)用的過(guò)程
      • 函數(shù)的返回值
    • 習(xí)題練習(xí)


怎樣定義函數(shù)

為什么要定義函數(shù)

C語(yǔ)言要求,在程序中所用到的所有函數(shù),必須“先定義,后使用”。例如max函數(shù)去求兩個(gè)數(shù)的較大者,必須事先先按規(guī)范對(duì)它進(jìn)行定義,指定它的名字、函數(shù)返回值類(lèi)型、函數(shù)實(shí)現(xiàn)的功能以及參數(shù)的個(gè)數(shù)與類(lèi)型,將這些信息通知編譯系統(tǒng)。這樣,在程序執(zhí)行max時(shí),編譯系統(tǒng)就會(huì)按照定義時(shí)所指定的功能執(zhí)行。如果事先不定義,編譯系統(tǒng)怎么能知道m(xù)ax是什么、要實(shí)現(xiàn)什么功能。

定義函數(shù)應(yīng)包括以下幾個(gè)內(nèi)容

  1. 指定函數(shù)的名字,以便以后按名調(diào)用
  2. 指定函數(shù)的類(lèi)型,即函數(shù)的返回值類(lèi)型
  3. 指定函數(shù)的參數(shù)的名字和類(lèi)型,以便在調(diào)用函數(shù)時(shí)向它們傳遞數(shù)據(jù)。對(duì)無(wú)參函數(shù)不需要這項(xiàng)。
  4. 指定函數(shù)應(yīng)當(dāng)完成什么操作,也就是函數(shù)是做什么的,即函數(shù)的功能。這是最重要的,是在函數(shù)體中解決的。

定義函數(shù)的方法

  1. 定義無(wú)參函數(shù)

注:函數(shù)名后面括號(hào)內(nèi)的void表示"",即函數(shù)沒(méi)有參數(shù)。
函數(shù)體內(nèi)包括聲明部分語(yǔ)句部分


  1. 定義有參函數(shù)
    類(lèi)型名 函數(shù)名()
    {
    函數(shù)體
    }
    函數(shù)體包括聲明部分和語(yǔ)句部分


    類(lèi)型名 函數(shù)名(void)
    {
    函數(shù)體
    }

以下定義的max函數(shù)是有參函數(shù):

int max(int x,int y)
{int z;    //聲明部分z = x > y? x:y;return z;

類(lèi)型名 函數(shù)名(形式參數(shù)列表)
{
函數(shù)體
}

函數(shù)體包含聲明部分和語(yǔ)句部分


  1. 定義空函數(shù)
void dummy()  //類(lèi)型名:void,函數(shù)名:dummy
{}

調(diào)用函數(shù)

函數(shù)調(diào)用的形式

函數(shù)調(diào)用一般形式為:
函數(shù)名(實(shí)參列表)

  1. 函數(shù)調(diào)用語(yǔ)句
    把函數(shù)調(diào)用單數(shù)作為一個(gè)語(yǔ)句。例如:
void print()
{printf("***********\n");
}
int main()
{print();//此時(shí)函數(shù)不帶回任何值return 0;
}
  1. 函數(shù)表達(dá)式
    函數(shù)調(diào)用出現(xiàn)在另一個(gè)表達(dá)式中,例如c=max(a,b); max(a,b) 是一次函數(shù)調(diào)用,它是賦值表達(dá)式的一部分。這時(shí)函數(shù)帶回一個(gè)確定的值以參加運(yùn)算。例如:
c = max(a,b);//將a和b中的較大值賦給c值

3.函數(shù)參數(shù)
函數(shù)調(diào)用作為另一個(gè)函數(shù)調(diào)用時(shí)的實(shí)參。例如:

m = max(a,max(b,c));//將b,c中的較大值與a比較,在將他們的最大值賦值給m

函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞

1.形式參數(shù)和實(shí)際參數(shù)
在調(diào)用有參函數(shù)時(shí),主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。從前面已知:在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名稱(chēng)為"形式參數(shù)"(簡(jiǎn)稱(chēng)形參)或"虛擬參數(shù)"。在主函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括號(hào)中的參數(shù)稱(chēng)為"實(shí)際參數(shù)"(簡(jiǎn)稱(chēng)實(shí)參)。實(shí)際參數(shù)可以是常量、變量或表達(dá)式。
2. 實(shí)際參數(shù)和形參間的數(shù)據(jù)傳遞
在調(diào)用函數(shù)的過(guò)程中,系統(tǒng)會(huì)把實(shí)參的值傳遞給被調(diào)用函數(shù)的形參?;蛘哒f(shuō),形參從實(shí)參得到了一個(gè)值。該值在函數(shù)調(diào)用期間有效,可以參加該函數(shù)的運(yùn)算。


例題:輸入兩個(gè)整數(shù),要求輸出其中值較大者。要求用函數(shù)來(lái)找到大數(shù)。

int Max(int x, int y)
{return x > y ? x : y;
}
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int ret = Max(a, b);printf("max = %d\n", ret);return 0;
}

運(yùn)行結(jié)果:
在這里插入圖片描述


函數(shù)調(diào)用的過(guò)程

  1. 在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元。在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)max的形參才被臨時(shí)分配內(nèi)存單元。可以通俗的理解成,形參是對(duì)實(shí)參的一份臨時(shí)拷貝。
  2. 將實(shí)參的值傳遞給對(duì)應(yīng)的形參。
  3. 在執(zhí)行max函數(shù)期間,由于形參已經(jīng)有值,就可以利用形參進(jìn)行有關(guān)的運(yùn)算。
  4. 通過(guò)return語(yǔ)句將函數(shù)值帶回主調(diào)函數(shù)。且應(yīng)當(dāng)注意返回值的類(lèi)型與函數(shù)類(lèi)型一致。如果函數(shù)不需要返回值,則不需要return語(yǔ)句。這時(shí)函數(shù)的類(lèi)型定義為void類(lèi)型。
  5. 調(diào)用結(jié)束,形參單元被釋放。注意:實(shí)參單元仍保留并維持原值,沒(méi)有改變。

函數(shù)的返回值

通常,希望通過(guò)函數(shù)調(diào)用使用主調(diào)函數(shù)能得到一個(gè)確定的值,這就是函數(shù)值(函數(shù)的返回值)。

  1. 函數(shù)的返回值是通過(guò)函數(shù)中的return語(yǔ)句獲得的。
  2. 函數(shù)值的類(lèi)型。既然函數(shù)有返回值,這個(gè)值當(dāng)然應(yīng)屬于某一個(gè)確定的類(lèi)型,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類(lèi)型。
  3. 在定義函數(shù)時(shí)指定的函數(shù)類(lèi)型一般應(yīng)該和return語(yǔ)句中的表達(dá)式一致。

習(xí)題練習(xí)

例題1:寫(xiě)兩個(gè)函數(shù)分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù)并輸出結(jié)果。

int common_divisor(int x, int y)
{int max = x > y ? x : y;int min = x < y ? x : y;while (min){if (x % min  == 0 && y % min == 0)//將它們兩個(gè)數(shù)的較小的數(shù)往下除{return min;}min--;}
}
int common_multiple(int x, int y)
{int n = 1;while (n * x % y != 0)//最小公倍數(shù)一定是他們兩個(gè)的倍數(shù){n++;}return n * x;
}
int main()
{int num1 = 0;int num2 = 0;scanf_s("%d %d", &num1, &num2);int divisor = common_divisor(num1, num2);//最大公約數(shù)int multiple = common_multiple(num1, num2);//最小公倍數(shù)printf("divisor = %d multiple = %d\n", divisor,multiple);return 0;
}

運(yùn)行結(jié)果:
在這里插入圖片描述


例題2:寫(xiě)一個(gè)判素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否為素?cái)?shù)的信息。

void prime_number(int x)//素?cái)?shù)只有1和它本身能被整除
{int flag = 0;int i = 0;if (x == 1)//如果該數(shù)是1就直接返回素?cái)?shù){printf("是素?cái)?shù)\n");}else if (x == 0)//是0就返回不是{printf("不是素?cái)?shù)\n");}else{for (i = 2; i < x; i++)//從2開(kāi)始到它本身看是否有能被整除的數(shù){if (x % i == 0){flag = 1;break;}}if (flag){printf("不是素?cái)?shù)\n");}else{printf("是素?cái)?shù)\n");}}
}
int main()
{int n = 0;scanf_s("%d", &n);prime_number(n);return 0;
}

運(yùn)行結(jié)果:
在這里插入圖片描述


例題3:寫(xiě)一個(gè)函數(shù),使輸入的一個(gè)字符串按反序存放,在主函數(shù)中輸入和輸出字符串。

void reverse_arr(char* str, int len)//逆序字符串
{char* left = str;//保存左邊的地址char* right = str + len - 1;//保存右邊的地址while (left < right)//兩兩進(jìn)行交換{char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}
int main()
{char arr[100] = { 0 };gets(arr);printf("initial:%s\n", arr);int len = strlen(arr);reverse_arr(arr,len);int i = 0;printf("reverse:%s\n", arr);return 0;
}

運(yùn)行結(jié)果:
在這里插入圖片描述


結(jié)語(yǔ):今天的內(nèi)容就到這里吧,謝謝各位的觀(guān)看,如果有講的不好的地方也請(qǐng)各位多多指出,作者每一條評(píng)論都會(huì)讀的,謝謝各位。

🫵🫵🫵 祝各位接下來(lái)好運(yùn)連連 💞
http://m.risenshineclean.com/news/60632.html

相關(guān)文章:

  • 品牌網(wǎng)站開(kāi)發(fā)動(dòng)態(tài)模塊廣州專(zhuān)業(yè)seo公司
  • 工程公司是做什么的谷歌seo排名技巧
  • 推廣網(wǎng)站掙錢(qián)windows優(yōu)化大師手機(jī)版
  • 臺(tái)州響應(yīng)式建站seo外鏈建設(shè)方法
  • 網(wǎng)站列表頁(yè)怎么做內(nèi)鏈搜索引擎排行榜
  • 網(wǎng)站之間的差異seo技術(shù)是干什么的
  • 設(shè)計(jì)logo怎么收費(fèi)泰安seo培訓(xùn)
  • 公司網(wǎng)站設(shè)計(jì)案例發(fā)外鏈軟件
  • 有什么做門(mén)窗展廳的設(shè)計(jì)網(wǎng)站百度收錄權(quán)重
  • 領(lǐng)手工在家做的網(wǎng)站2019廣告推廣的軟件
  • 購(gòu)卡網(wǎng)頁(yè)怎么制作關(guān)鍵詞優(yōu)化軟件
  • 靜態(tài)做網(wǎng)站百度推廣官方網(wǎng)站登錄入口
  • 社交網(wǎng)站百度搜索推廣費(fèi)用
  • 網(wǎng)站綜合建設(shè)筆記可以免費(fèi)發(fā)布廣告的平臺(tái)有哪些
  • 哈爾濱整站優(yōu)化百度提交入口
  • 汽車(chē)網(wǎng)站開(kāi)發(fā)流程品牌整合營(yíng)銷(xiāo)傳播
  • 中國(guó)網(wǎng)站有哪些如何自己搭建網(wǎng)站
  • wordpress標(biāo)簽后綴名html培訓(xùn)行業(yè)seo整站優(yōu)化
  • 如何做有后臺(tái)的網(wǎng)站正規(guī)網(wǎng)絡(luò)推廣服務(wù)
  • 做柜子網(wǎng)站在線(xiàn)培訓(xùn)課程
  • 秦皇島做網(wǎng)站seo的快排seo軟件
  • 網(wǎng)站開(kāi)發(fā)應(yīng)用到的技術(shù)名詞百度seoo優(yōu)化軟件
  • 企業(yè)微信有哪些功能寧波seo軟件
  • 農(nóng)產(chǎn)品網(wǎng)站建設(shè)投標(biāo)書(shū)百度開(kāi)戶(hù)是什么意思
  • wordpress調(diào)用第一張圖片合肥網(wǎng)絡(luò)優(yōu)化公司有幾家
  • 襄陽(yáng)建設(shè)21網(wǎng)站搜索引擎營(yíng)銷(xiāo)有哪些方式
  • 深圳網(wǎng)站建設(shè)快速排名自動(dòng)seo網(wǎng)站源碼
  • 怎么免費(fèi)搭建一個(gè)網(wǎng)站成都網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣
  • 網(wǎng)站開(kāi)發(fā)項(xiàng)目技能比賽獲獎(jiǎng)報(bào)道千鋒教育培訓(xùn)機(jī)構(gòu)可靠嗎
  • 工程建設(shè)采購(gòu)有哪些網(wǎng)站今天特大新聞最新消息