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

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

做電影解析網(wǎng)站網(wǎng)站推廣100種方法

做電影解析網(wǎng)站,網(wǎng)站推廣100種方法,新疆克拉瑪依區(qū)建設(shè)局網(wǎng)站,如何創(chuàng)建一個(gè)企業(yè)網(wǎng)站? ? ? ? ? づ?ど 🎉 歡迎點(diǎn)贊支持🎉 文章目錄 前言 一、return語(yǔ)句 二、數(shù)組做函數(shù)參數(shù) 三、嵌套調(diào)用和鏈?zhǔn)皆L(fǎng)問(wèn) 3.1 嵌套調(diào)用 3.2 鏈?zhǔn)皆L(fǎng)問(wèn) 四、函數(shù)聲明和定義 4.1 單個(gè)文件 4.2 多個(gè)文件 總結(jié) 前言 大家好啊,繼我們上一…

? ? ? ? ? ? ?? ? ? ? ?? ? ? ? ? ? ?

?

?🎉?點(diǎn)🎉

文章目錄

前言

一、return語(yǔ)句

二、數(shù)組做函數(shù)參數(shù)

三、嵌套調(diào)用和鏈?zhǔn)皆L(fǎng)問(wèn)

3.1 嵌套調(diào)用

3.2 鏈?zhǔn)皆L(fǎng)問(wèn)

四、函數(shù)聲明和定義

4.1 單個(gè)文件

4.2 多個(gè)文件

總結(jié)


前言

大家好啊,繼我們上一次講的函數(shù)(1)已經(jīng)過(guò)了兩周了,不知道大家掌握的怎么樣,由于要期末考試,我斷更了兩周,希望大家見(jiàn)諒,那么我們接著上一章節(jié)來(lái)繼續(xù)說(shuō)說(shuō)函數(shù)的內(nèi)容吧。我們這一章節(jié)就來(lái)看看return語(yǔ)句和數(shù)組傳參及嵌套調(diào)用和鏈?zhǔn)皆L(fǎng)問(wèn)等問(wèn)題,接下來(lái)我們來(lái)一起學(xué)習(xí)本次的內(nèi)容。


一、return語(yǔ)句

我們?cè)谑褂煤瘮?shù)的過(guò)程中,總是使用到return語(yǔ)句,例如

int Add(int a, int b)
{int c = a + b;return c;
}

既然return這么重要,那它到底怎么使用呢,我們來(lái)了解了解。

1. return后面可以是一個(gè)數(shù)值,也可以是一個(gè)表達(dá)式,但是如果return后面是表達(dá)式的話(huà)要先計(jì)算表達(dá)式的內(nèi)容,在返回結(jié)果。

2. return后面可以什么都沒(méi)有,直接寫(xiě)return,這種寫(xiě)法適合函數(shù)返回類(lèi)型是void(無(wú)類(lèi)型返回)的情況

3. return返回的值和函數(shù)返回的類(lèi)型不一致,系統(tǒng)會(huì)自動(dòng)返回的值轉(zhuǎn)換成函數(shù)返回的類(lèi)型。

4. return執(zhí)行后,函數(shù)就徹底返回,后面的代碼不執(zhí)行。

5. 如果函數(shù)中出現(xiàn)了if分支,要確保每個(gè)分支都有返回的情況,不然程序會(huì)報(bào)錯(cuò)。

我來(lái)一條一條的為大家解釋。

首先是第一條,我們可以從上節(jié)課的代碼就能知道,return可以直接返回?cái)?shù)值,也可以返回一個(gè)表達(dá)式。

int Add(int a, int b)
{int c = a + b;return c;
}
int Add(int a, int b)
{return a + b;
}

表達(dá)式是先通過(guò)計(jì)算出結(jié)果后才返回最終的值的,這很好理解,就不多贅述。

其次是第2條也很好理解,函數(shù)本身是不需要任何的返回類(lèi)型的,那return后面肯定什么也不能加的,可能會(huì)有人疑問(wèn)那這個(gè)return加在這個(gè)函數(shù)里面有什么用,當(dāng)然是有用的這個(gè)就可以和第4點(diǎn)結(jié)合起來(lái),它可以直接中斷函數(shù)而不繼續(xù)運(yùn)行下面的代碼。這就是這個(gè)return的作用。

void Print(int n)
{if (n <= 0){return;}for (int i = 1; i <= n; i++){printf("%d ", i);}
}int main()
{int n = 0;scanf("%d", &n);Print(n);return 0;
}

我們可以來(lái)看這個(gè)代碼,這個(gè)代碼的目的是如果n>0就把1~n的數(shù)字打印出來(lái),我們可以來(lái)看這個(gè)打印的函數(shù)Print就可以看到,如果n<=0就return,我們可以來(lái)看看這個(gè)return后還會(huì)不會(huì)繼續(xù)運(yùn)行函數(shù)下面的代碼了。

可以看到,我輸入一個(gè)正數(shù)它很好的打印出來(lái)了,那我輸入一個(gè)負(fù)數(shù)或者0會(huì)怎么樣呢?

很顯然,它什么都沒(méi)有輸出,這就是return的強(qiáng)大,它比break都強(qiáng),break是跳出循環(huán),而return是直接跳出函數(shù)。

我們現(xiàn)在來(lái)看看第3點(diǎn),其實(shí)也很好理解,就是如果return返回的類(lèi)型和函數(shù)要求的返回類(lèi)型不一樣是會(huì)轉(zhuǎn)換成函數(shù)類(lèi)型。

char test(char a)
{int b = a;return b;
}int main()
{char a;scanf("%c", &a);int b = sizeof(test(a));printf("%d", b);return 0;
}

我們可以來(lái)看看這個(gè)代碼,我們先輸入一個(gè)字符,然后寫(xiě)一個(gè)函數(shù),這個(gè)函數(shù)的返回類(lèi)型是字符型,但是我卻返回了一個(gè)整型,那我們來(lái)看看它到底返回的是字符還是整型吧,我們可以知道字符的sizeof是1,而整型是大于等于2。

可以看到是1,所以返回回來(lái)的是字符型。也就是函數(shù)要求的返回類(lèi)型。

最后我們來(lái)看看第5點(diǎn),其實(shí)也很簡(jiǎn)單,你想想,如果一個(gè)要求要返回內(nèi)容的函數(shù)卻沒(méi)有返回內(nèi)容會(huì)怎么辦,肯定會(huì)出現(xiàn)問(wèn)題啊,可能你十分肯定不會(huì)有其他情況發(fā)生,但是萬(wàn)一呢,萬(wàn)一發(fā)生了呢,可能你會(huì)想那再改嘛,但是給了用戶(hù)后發(fā)生這種情況導(dǎo)致程序崩潰了,那是多大的損失啊。所以為了防止這種事情的發(fā)生,函數(shù)中如果有if,那必須都有返回值,不然程序會(huì)報(bào)錯(cuò)的。

二、數(shù)組做函數(shù)參數(shù)

我們?cè)谑褂煤瘮?shù)的過(guò)程之中,難免會(huì)使用到數(shù)組做參數(shù),就比如說(shuō)我們?nèi)绻雽?xiě)一個(gè)函數(shù),讓它把數(shù)組里的數(shù)據(jù)都變成0,那就得把數(shù)組傳參到函數(shù)中,那我們接下來(lái)了解了解數(shù)組如何傳參吧。

我們可以先來(lái)寫(xiě)兩個(gè)關(guān)于數(shù)組傳參的函數(shù),第一個(gè)就是把數(shù)組里的數(shù)據(jù)都變成0的函數(shù),第二個(gè)則是打印數(shù)組的函數(shù)。

int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };set_arr();     //把數(shù)組里的數(shù)據(jù)都變成0print_arr();   //打印數(shù)組的函數(shù)return 0;
}

我們可以先來(lái)想想,如果我們要去讓數(shù)組內(nèi)的數(shù)據(jù)都變成0的話(huà),肯定還是要知道數(shù)組里的元素個(gè)數(shù)的,而且我們之前傳實(shí)參的時(shí)候都是在()內(nèi)輸入要傳過(guò)去的東西的名字的,按道理來(lái)講數(shù)組也是這樣的,我們之前說(shuō)過(guò)數(shù)組的名是[ ]前的,也就是arr,所以說(shuō)最后就變成了這樣。

int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int sz = sizeof(arr) / sizeof(arr[0]); //求元素的個(gè)數(shù)set_arr(arr, sz);     //把數(shù)組里的數(shù)據(jù)都變成0print_arr(arr, sz);   //打印數(shù)組的函數(shù)return 0;
}

這就是實(shí)參的寫(xiě)法,實(shí)參傳輸過(guò)去變成形參啦,那形參該怎么寫(xiě)呢?我們參考上一章節(jié)的內(nèi)容就可以知道其實(shí)很簡(jiǎn)單,唯一困難的地方就是不知道數(shù)組該用什么類(lèi)型來(lái)表示。這里我們來(lái)復(fù)習(xí)一下我們前面講數(shù)組是說(shuō)數(shù)組是什么類(lèi)型的啊,除去我們命名的東東其他的就是它的類(lèi)型,比如我們這里的arr它的類(lèi)型是int [ ],那我們的形參是不是 int [ ] arr呢,答案肯定是否定的,其實(shí)沒(méi)有那么復(fù)雜,直接就是數(shù)組啥樣它啥樣就行了,數(shù)組是int arr[ ],那形參也是int arr[ ];當(dāng)然,如果你想換個(gè)名字,比如說(shuō)int brr[ ]也可以。所以說(shuō)最終函數(shù)長(zhǎng)這樣。

void set_arr(int arr[], int sz)
{for (int i = 0; i < sz; i++){arr[i] = 0;}
}void print_arr(int arr[], int sz)
{for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}
}int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int sz = sizeof(arr) / sizeof(arr[0]); //求元素的個(gè)數(shù)set_arr(arr, sz);     //把數(shù)組里的數(shù)據(jù)都變成0print_arr(arr, sz);   //打印數(shù)組的函數(shù)return 0;
}

這就是數(shù)組的傳參方式,當(dāng)然,不知這一種,等我們學(xué)到指針時(shí)還有其他的辦法會(huì)更實(shí)用一點(diǎn)。當(dāng)然,數(shù)組這里還有幾個(gè)重要的知識(shí)點(diǎn)得掌握。

1. 函數(shù)的形式參數(shù)要和函數(shù)的實(shí)際參數(shù)相匹配。

也就是說(shuō)實(shí)參傳了兩個(gè)參數(shù)過(guò)去,那形參就一定要用兩個(gè)參數(shù)接收,不能多也不能少。

2. 函數(shù)的實(shí)參是數(shù)組,形參也是可以寫(xiě)成數(shù)組的形式的。

3. 形參如果是一維數(shù)組,那數(shù)組的大小可以省略不寫(xiě)。

也就和我上面的相同,[ ]中沒(méi)有數(shù)組的大小,當(dāng)然如果寫(xiě)了也無(wú)傷大雅。

4. 形參如果是二維數(shù)組,行可以省略,但是列不行,就和創(chuàng)建二維數(shù)組相同。

5. 數(shù)組傳參,形參是不會(huì)創(chuàng)建新數(shù)組的。

也就是說(shuō)實(shí)參的數(shù)組和形參的數(shù)組是一個(gè)數(shù)組,而不是和上節(jié)課那樣只是數(shù)據(jù)相同,但不是同一個(gè)東西,數(shù)組就是同一個(gè)數(shù)組。

6. 形參操作的數(shù)組和實(shí)參操作的數(shù)組是同一個(gè)數(shù)組。

同上面同理。

三、嵌套調(diào)用和鏈?zhǔn)皆L(fǎng)問(wèn)

3.1 嵌套調(diào)用

嵌套調(diào)用就是函數(shù)之間相互調(diào)用,就像孔明鎖或者魯班鎖,各種不同的結(jié)構(gòu)相互平湊在一起,形成了一個(gè)非常穩(wěn)固的結(jié)構(gòu)。而正是因?yàn)楹瘮?shù)之間有效的相互調(diào)用才形成了相對(duì)的的程序。

假如我們要寫(xiě)一個(gè)程序,要讓它求出某年某月有多少天怎么做呢?我們來(lái)看一下。

int main()
{int years = 0;int month = 0;scanf("%d %d", &years, &month);int day = get_month_day(years, month); // 用來(lái)求某年某月有多少天的函數(shù)printf("%d", day);return 0;
}

這是主函數(shù),我們可以先創(chuàng)建一個(gè)函數(shù)來(lái)解決這個(gè)問(wèn)題,我們來(lái)分析一下這個(gè)問(wèn)題,其實(shí)很簡(jiǎn)單,月份基本上是固定的,唯一一個(gè)不固定的月份就是二月,閏年二月29天,平年二月28天,所以問(wèn)題就變成了一個(gè)找閏年的問(wèn)題,我們可以再創(chuàng)建一個(gè)函數(shù)來(lái)判斷是不是閏年。

int is_leap_year(int y) //是閏年返回1,不是返回0
{if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0){return 1;}else{return 0;}
}
int get_month_day(int y, int m)
{int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//由于arr的下標(biāo)是從0開(kāi)始的,所以說(shuō)我們可以空一位,讓下標(biāo)0變成0if (is_leap_year(y) == 1 && m == 2){return arr[m] + 1;}else{return arr[m];}
}int main()
{int years = 0;int month = 0;scanf("%d %d", &years, &month);int day = get_month_day(years, month); // 用來(lái)求某年某月有多少天的函數(shù)printf("%d", day);return 0;
}

我們可以得到以上的函數(shù),這就能很好的滿(mǎn)足我們的要求,這就是嵌套調(diào)用。

當(dāng)然還可以用switch,大家可以去試一試,這里就不帶大家嘗試了。

大家要注意函數(shù)不能嵌套定義,就是說(shuō)在一個(gè)函數(shù)中在定義一個(gè)函數(shù)是萬(wàn)分不可的。

3.2 鏈?zhǔn)皆L(fǎng)問(wèn)

鏈?zhǔn)皆L(fǎng)問(wèn)就是值把一個(gè)函數(shù)的返回值作為一個(gè)函數(shù)的參數(shù),像鏈條一樣將函數(shù)串起來(lái)就是鏈?zhǔn)皆L(fǎng)問(wèn)。

就比如我們之前玩過(guò)的strlen函數(shù),它的作用是求字符串長(zhǎng)度

int main()
{int a = strlen("ABCDEFG");printf("%d\n", a);return 0;
}

這個(gè)代碼很容易懂,就是求出ABCDEFG的大小后存儲(chǔ)在a中,然后再用printf函數(shù)輸出出來(lái)。

可能有人就在想了,能不能直接把strlen寫(xiě)在printf里面,不用a保存,比如

int main()
{printf("%d\n", strlen("ABCDEFG"));return 0;
}

當(dāng)然可以,這就是一個(gè)鏈?zhǔn)皆L(fǎng)問(wèn),將strlen函數(shù)的返回值放在printf的參數(shù)之中。

四、函數(shù)聲明和定義

4.1 單個(gè)文件

我們?cè)趧?chuàng)建函數(shù)的時(shí)候一般都是把函數(shù)寫(xiě)在主程序的前面,例如

int Add(int a, int b) //函數(shù)的定義
{return a + b;
}int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int c = Add(a, b);//函數(shù)的調(diào)用printf("%d", c);return 0;
}

我們把上面的函數(shù)叫做函數(shù)的定義,而下面引用函數(shù)的地方叫做函數(shù)的調(diào)用。但是我們其實(shí)也可以把函數(shù)寫(xiě)在主函數(shù)的下面。

int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int c = Add(a, b);//函數(shù)的調(diào)用printf("%d", c);return 0;
}int Add(int a, int b) //函數(shù)的定義
{return a + b;
}

這個(gè)時(shí)候我們運(yùn)行代碼會(huì)發(fā)現(xiàn)程序報(bào)錯(cuò)了。

上面顯示說(shuō)是Add未定義,原因是因?yàn)榫幾g器在從上往下編譯時(shí)發(fā)現(xiàn)主程序中有Add這個(gè)函數(shù),但是它在前面沒(méi)有看見(jiàn)過(guò),所以就顯示未定義,這個(gè)時(shí)候我們就可以聲明一下。

int Add(int a, int b);//函數(shù)的聲明int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int c = Add(a, b);//函數(shù)的調(diào)用printf("%d", c);return 0;
}int Add(int a, int b) //函數(shù)的定義
{return a + b;
}

這就是函數(shù)的聲明,這樣程序就能正常運(yùn)行了,當(dāng)然,函數(shù)的定義是特殊的函數(shù)聲明。

4.2 多個(gè)文件

其實(shí)我們一般在創(chuàng)建函數(shù)是都不會(huì)在一個(gè)文件中創(chuàng)建,一般會(huì)分為兩個(gè)文件

.h(頭文件) ---- 函數(shù)的聲明;

.c(源文件) ---- 函數(shù)的定義;

以上就是我們聲明函數(shù)的地方。

以上就是我們函數(shù)定義的地方。

我們?cè)陬^文件中聲明函數(shù),在源文件中定義函數(shù),最后再在我們的主文件中使用函數(shù),這就是多個(gè)文件的函數(shù)聲明和定義。

聲明:

定義:

使用:

在使用時(shí)要注意要引用我們自己創(chuàng)建的頭文件,我們自己的頭文件用" "來(lái)引用。


總結(jié)

以上就是函數(shù)的內(nèi)容啦,希望大家好好吸收和理解下一章節(jié)我來(lái)說(shuō)說(shuō)操作符吧。感謝大家的觀看,如果哪里有誤,歡迎支持,謝謝大家。

http://www.risenshineclean.com/news/32983.html

相關(guān)文章:

  • 程序員用來(lái)做筆記的網(wǎng)站搜索引擎是指什么
  • 前端網(wǎng)站搜索導(dǎo)航怎么做網(wǎng)站搜索引擎優(yōu)化診斷
  • 淮南市建設(shè)工程質(zhì)量監(jiān)督中心網(wǎng)站百度健康
  • 手機(jī)網(wǎng)站端域名怎樣做解析網(wǎng)絡(luò)營(yíng)銷(xiāo)就是
  • 黔西南州建設(shè)局網(wǎng)站系統(tǒng)優(yōu)化的方法
  • html個(gè)人主頁(yè)制作seo運(yùn)營(yíng)學(xué)校
  • 做網(wǎng)站對(duì)商家的好處b2b平臺(tái)有哪些平臺(tái)
  • 怎么做網(wǎng)站設(shè)計(jì)推廣引流渠道
  • 哪家公司制作網(wǎng)站互聯(lián)網(wǎng)廣告投放代理公司
  • 網(wǎng)站可以做哪些廣告怎樣搭建自己的網(wǎng)站
  • 最好的網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)站源碼交易網(wǎng)站源碼
  • 響應(yīng)網(wǎng)站 整屏seo學(xué)院
  • 開(kāi)一個(gè)網(wǎng)站需要什么seo排名賺下載
  • 網(wǎng)站備案 深圳廣告投放的方式有哪些
  • 網(wǎng)站建設(shè) 個(gè)人杭州明開(kāi)seo
  • ovz的vps怎么做網(wǎng)站建設(shè)企業(yè)網(wǎng)站多少錢(qián)
  • wordpress如何添加菜單和數(shù)據(jù)表搜索引擎優(yōu)化的目的是對(duì)用戶(hù)友好
  • 建設(shè)公司企業(yè)簡(jiǎn)介北京推廣優(yōu)化公司
  • 裝修網(wǎng)站合作百度官方網(wǎng)站入口
  • 司機(jī)找事做那個(gè)網(wǎng)站靠譜北京網(wǎng)站制作推廣
  • 潛江資訊網(wǎng)免費(fèi)發(fā)布信息手機(jī)端seo
  • 最簡(jiǎn)單做網(wǎng)站國(guó)際熱點(diǎn)事件
  • 做澳洲ets上什么網(wǎng)站網(wǎng)站seo如何優(yōu)化
  • 寧波市住房和城鄉(xiāng)建設(shè)委員網(wǎng)站網(wǎng)絡(luò)銷(xiāo)售培訓(xùn)
  • 福田企業(yè)網(wǎng)站優(yōu)化哪個(gè)好推廣軟文范例100字
  • 玉溪做網(wǎng)站公司重慶網(wǎng)站搜索引擎seo
  • WordPress 站點(diǎn)圖標(biāo)鏈接站長(zhǎng)素材網(wǎng)站
  • 營(yíng)銷(xiāo)型企業(yè)網(wǎng)站分析與診斷關(guān)鍵詞挖掘站長(zhǎng)工具
  • 微信公眾號(hào)免費(fèi)模板網(wǎng)站化妝品推廣軟文
  • 有什么知名網(wǎng)站是用織夢(mèng)做的微信營(yíng)銷(xiāo)模式