日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C语言函数的概念

發(fā)布時(shí)間:2025/3/12 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言函数的概念 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)的使用

函數(shù)在使用時(shí)必須帶上括號(hào),有必要的話(huà)還要傳遞參數(shù),函數(shù)的執(zhí)行結(jié)果也可以賦值給其它變量。例如,strcmp() 是一個(gè)用來(lái)比較字符串大小的函數(shù)。

示例

#include <stdio.h> #include <string.h> int main(){char str1[] = "http://www.sougou.com";char str2[] = "http://www.baidu.com";//比較兩個(gè)字符串大小int result = strcmp(str1, str2);printf("str1 - str2 = %d\n", result);return 0; }

str1 和 str2 是傳遞給 strcmp() 的參數(shù),strcmp() 的處理結(jié)果賦值給了變量 result。

我們不妨設(shè)想一下,如果沒(méi)有 strcmp() 函數(shù),要想比較兩個(gè)字符串的大小該怎么寫(xiě)呢?請(qǐng)看下面的代碼:

#include <stdio.h> #include <string.h> int main(){char str1[] = "http://www.sougou.com";char str2[] = "http://www.baidu.com";int result, i;//比較兩個(gè)字符串大小for(i=0; (result = str1[i] - str2[i]) == 0; i++){if(str1[i] == '\0' || str2[i] == '\0'){break;}}printf("str1 - str2 = %d\n", result);return 0; }

比較字符串大小是常用的功能,一個(gè)程序可能會(huì)用到很多次,如果每次都寫(xiě)這樣一段重復(fù)的代碼,不但費(fèi)時(shí)費(fèi)力、容易出錯(cuò),而且交給別人時(shí)也很麻煩,所以C語(yǔ)言提供了一個(gè)功能,允許我們將常用的代碼以固定的格式封裝(包裝)成一個(gè)獨(dú)立的模塊,只要知道這個(gè)模塊的名字就可以重復(fù)使用它,這個(gè)模塊就叫做函數(shù)(Function)。

函數(shù)的本質(zhì)是一段可以重復(fù)使用的代碼,這段代碼被提前編寫(xiě)好了,放到了指定的文件中,使用時(shí)直接調(diào)取即可

示例封裝 strcmp() 函數(shù)

#include <stdio.h>//將比較字符串大小的代碼封裝成函數(shù),并命名為strcmp_alias int strcmp_alias(char *s1, char *s2){int i, result;for(i=0; (result = s1[i] - s2[i]) == 0; i++){if(s1[i] == '\0' || s2[i] == '\0'){break;}}return result; }int main(){char str1[] = "http://www.sougou.com";char str2[] = "http://www.baidu.com";char str3[] = "http://www.guge.com";//重復(fù)使用strcmp_alias()函數(shù)int result_1_2 = strcmp_alias(str1, str2);int result_1_3 = strcmp_alias(str1, str3);printf("str1 - str2 = %d\n", result_1_2);printf("str1 - str3 = %d\n", result_1_3);return 0; }

為了避免與原有的 strcmp 產(chǎn)生命名沖突,我將新函數(shù)命名為 strcmp_alias。

這是我們自己編寫(xiě)的函數(shù),放在了當(dāng)前源文件中(函數(shù)封裝和函數(shù)使用在同一個(gè)源文件中),所以不需要引入頭文件;而C語(yǔ)言自帶的 strcmp() 放在了其它的源文件中(函數(shù)封裝和函數(shù)使用不在同一個(gè)源文件中),并在 string.h 頭文件中告訴我們?nèi)绾问褂?#xff0c;所以我們必須引入 string.h 頭文件。

我們自己編寫(xiě)的 strcmp_alias() 和原有的 strcmp() 在功能和格式上都是一樣的,只是存放的位置不同,所以一個(gè)需要引入頭文件,一個(gè)不需要引入。

C語(yǔ)言中的函數(shù)和數(shù)學(xué)中的函數(shù)

美國(guó)人將函數(shù)稱(chēng)為“Function”。Function 除了有“函數(shù)”的意思,還有“功能”的意思,中國(guó)人將 Function 譯為“函數(shù)”而不是“功能”,是因?yàn)镃語(yǔ)言中的函數(shù)和數(shù)學(xué)中的函數(shù)在使用形式上有些類(lèi)似,例如:

C語(yǔ)言中有 length = strlen(str)數(shù)學(xué)中有 y = f(x)

你看它們是何其相似,都是通過(guò)一定的操作或規(guī)則,由一份數(shù)據(jù)得到另一份數(shù)據(jù)。

不過(guò)從本質(zhì)上看,將 Function 理解為“功能”或許更恰當(dāng),C語(yǔ)言中的函數(shù)往往是獨(dú)立地實(shí)現(xiàn)了某項(xiàng)功能。一個(gè)程序由多個(gè)函數(shù)組成,可以理解為「一個(gè)程序由多個(gè)小的功能疊加而成」。

庫(kù)函數(shù)和自定義函數(shù)

C語(yǔ)言在發(fā)布時(shí)已經(jīng)為我們封裝好了很多函數(shù),它們被分門(mén)別類(lèi)地放到了不同的頭文件中(暫時(shí)先這樣認(rèn)為),使用函數(shù)時(shí)引入對(duì)應(yīng)的頭文件即可。

C語(yǔ)言自帶的函數(shù)稱(chēng)為庫(kù)函數(shù)(Library Function)。庫(kù)(Library)是編程中的一個(gè)基本概念,可以簡(jiǎn)單地認(rèn)為它是一系列函數(shù)的集合,在磁盤(pán)上往往是一個(gè)文件夾。C語(yǔ)言自帶的庫(kù)稱(chēng)為標(biāo)準(zhǔn)庫(kù)(Standard Library),其他公司或個(gè)人開(kāi)發(fā)的庫(kù)稱(chēng)為第三方庫(kù)(Third-Party Library)。

除了庫(kù)函數(shù),我們還可以編寫(xiě)自己的函數(shù),拓展程序的功能。自己編寫(xiě)的函數(shù)稱(chēng)為自定義函數(shù)。自定義函數(shù)和庫(kù)函數(shù)在編寫(xiě)和使用方式上完全相同,只是由不同的機(jī)構(gòu)來(lái)編寫(xiě)。

參數(shù)

函數(shù)的一個(gè)明顯特征就是使用時(shí)帶括號(hào)( ),有必要的話(huà),括號(hào)中還要包含數(shù)據(jù)或變量,稱(chēng)為參數(shù)(Parameter)。

示例

strlen(str1)用來(lái)計(jì)算字符串的長(zhǎng)度,str1就是參數(shù)。puts("今天會(huì)下雨!!!")用來(lái)輸出字符串,"今天會(huì)下雨"就是參數(shù)。

返回值

既然函數(shù)可以處理數(shù)據(jù),那就有必要將處理結(jié)果告訴我們,所以很多函數(shù)都有返回值(Return Value)。所謂返回值,就是函數(shù)的執(zhí)行結(jié)果。

示例

char str1[] = "C Language"; int len = strlen(str1);

strlen() 的處理結(jié)果是字符串 str1 的長(zhǎng)度,是一個(gè)整數(shù),我們通過(guò) len 變量來(lái)接收。

函數(shù)返回值有固定的數(shù)據(jù)類(lèi)型(int、char、float等),用來(lái)接收返回值的變量類(lèi)型要一致。

如果感覺(jué)不錯(cuò)的話(huà)請(qǐng)點(diǎn)贊喲!!!

總結(jié)

以上是生活随笔為你收集整理的C语言函数的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。