C語(yǔ)言必須要有一個(gè)main函數(shù),而且只能有一個(gè)main函數(shù),這個(gè)函數(shù)叫主函數(shù),它是第一個(gè)運(yùn)行的函數(shù)。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、重慶小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鶴山免費(fèi)建站歡迎大家使用!
一般來(lái)說(shuō),主函數(shù)應(yīng)放在最后,其他被調(diào)用函數(shù)放在主函數(shù)前面。這樣的話,其他被調(diào)用函數(shù)可以不予先聲明。如果其他被調(diào)用函數(shù)放在了主函數(shù)后面,則在主函數(shù)之前一定要事先對(duì)被調(diào)用函數(shù)加以聲明。
C語(yǔ)言中的主函數(shù)固定名為:main(),每個(gè)系統(tǒng)中必須有一個(gè),且只能有一個(gè)。它 是第一個(gè)運(yùn)行的函數(shù)。
一般情況下,main()寫(xiě)在文件的最后面,其他被調(diào)用的函數(shù)放在前面,這樣定義函數(shù)之前可以不加聲明,如果放在主函數(shù)之后,則必須先聲明,再定義,再被調(diào)用。
常用詞匯:
1、short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。
2、long:修飾int,長(zhǎng)整型數(shù)據(jù),可省略被修飾的int。
3、long long:修飾int,超長(zhǎng)整型數(shù)據(jù),可省略被修飾的int。
4、signed:修飾整型數(shù)據(jù),有符號(hào)數(shù)據(jù)類型。
5、unsigned:修飾整型數(shù)據(jù),無(wú)符號(hào)數(shù)據(jù)類型。
6、restrict:用于限定和約束指針,并表明指針是訪問(wèn)一個(gè)數(shù)據(jù)對(duì)象的唯一且初始的方式。
7、return:用在函數(shù)體中,返回特定值(如果是void類型,則不返回函數(shù)值)。
8、continue:結(jié)束當(dāng)前循環(huán),開(kāi)始下一輪循環(huán)。
9、break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu)。
10、goto:無(wú)條件跳轉(zhuǎn)語(yǔ)句。
11、if:條件語(yǔ)句,后面不需要放分號(hào)。
12、else:條件語(yǔ)句否定分支(與if連用)。
13、switch:開(kāi)關(guān)語(yǔ)句(多重分支語(yǔ)句)。
14、case:開(kāi)關(guān)語(yǔ)句中的分支標(biāo)記,與switch連用。
15、default:開(kāi)關(guān)語(yǔ)句中的“其他”分支,可選。
常用函數(shù):
1、int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z'),返回非0值,否則返回0。
2、int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9'),返回非0值,否則返回0。
3、int abs(int i) 返回整型參數(shù)i的絕對(duì)值。
4、double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對(duì)值。
5、double fabs(double x) 返回雙精度參數(shù)x的絕對(duì)值。
6、long labs(long n) 返回長(zhǎng)整型參數(shù)n的絕對(duì)值。
參考資料來(lái)源:百度百科—C語(yǔ)言
main()函數(shù)是必須有的.其它的函數(shù)還有很多,其中編譯系統(tǒng)有提供許多的函數(shù),一般教的C程序的教材的背后的附錄里都有,你可以去看看。除了那些外,你還可以自己定義新的函數(shù)(但得符合要求)。
C語(yǔ)文程序中必須有main()函數(shù)。
C的設(shè)計(jì)原則是把函數(shù)作為程序的構(gòu)成模塊。main()函數(shù)稱之為主函數(shù),一個(gè)C程序總是從main()函數(shù)開(kāi)始執(zhí)行的。
一、main()函數(shù)的形式
在最新的 C99 標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:
int main( void ) /* 無(wú)參數(shù)形式 */
{
...
return 0;
}
int main( int argc, char *argv[] ) /* 帶參數(shù)形式 */
{
...
return 0;
}
int指明了main()函數(shù)的返回類型,函數(shù)名后面的圓括號(hào)一般包含傳遞給函數(shù)的信息。void表示沒(méi)有給函數(shù)傳遞參數(shù)。關(guān)于帶參數(shù)的形式,我們等會(huì)討論。
瀏覽老版本的C代碼,將會(huì)發(fā)現(xiàn)程序常常以main()這種形式開(kāi)始。C90標(biāo)準(zhǔn)允許這種形式,但是C99標(biāo)準(zhǔn)不允許。因此即使你當(dāng)前的編譯器允許,也不要這么寫(xiě)。
你還可能看到過(guò)另一種形式。
void main()
有些編譯器允許這種形式,但是還沒(méi)有任何標(biāo)準(zhǔn)考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁(yè)上的 FAQ 中明確地表示:void main( ) 的定義從來(lái)就不存在于 C++ 或者 C 。所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫(xiě)。
堅(jiān)持使用標(biāo)準(zhǔn)的意義在于:當(dāng)你把程序從一個(gè)編譯器移到另一個(gè)編譯器時(shí),照樣能正常運(yùn)行。
二、main()函數(shù)的返回值
從前面我們知道m(xù)ain()函數(shù)的返回值類型是int型的,而程序最后的 return 0; 正與之遙相呼應(yīng),0就是main()函數(shù)的返回值。那么這個(gè)0返回到那里呢?返回給操作系統(tǒng),表示程序正常退出。因?yàn)閞eturn語(yǔ)句通常寫(xiě)在程序的最后,不管返回什么值,只要到達(dá)這一步,說(shuō)明程序已經(jīng)運(yùn)行完畢。而return的作用不僅在于返回一個(gè)值,還在于結(jié)束函數(shù)。
現(xiàn)在我們來(lái)做一個(gè)小試驗(yàn)來(lái)觀察main()函數(shù)的返回值。編寫(xiě)如下代碼并編譯運(yùn)行:
//a.c
#include "stdio.h"
int main(void)
{
printf("I love you.");
return 0;
}
將這個(gè)文件保存為a.c,編譯運(yùn)行后會(huì)生成一個(gè)a.exe文件。現(xiàn)在打開(kāi)命令提示符,在命令行里運(yùn)行剛才編譯好的可執(zhí)行文件,然后輸入 echo %ERRORLEVEL% ,回車,就可以看到程序返回 一個(gè)0 。如果把 return 0; 改為 return 99; ,那么很顯然,再次執(zhí)行上述步驟以后你可以看到程序返回99。要是你這樣寫(xiě) return 99.99; 那還是返回99,因?yàn)?9.99被傳給操作系統(tǒng)之前,被強(qiáng)制類型轉(zhuǎn)換成整數(shù)類型了。
現(xiàn)在,我們把a(bǔ).c改回原來(lái)的代碼,然后再編寫(xiě)另一個(gè)程序b.c:
//b.c
#include "stdio.h"
int main(void)
{
printf("I’m too.");
return 0;
}
編譯運(yùn)行后打開(kāi)命令提示符,在命令行里輸入ab 回車,這樣你就可以看到《人鬼情未了》里面經(jīng)典的愛(ài)情對(duì)白:
I love you.
I’m too.
的含義是:如果 前面的程序正常退出,則繼續(xù)執(zhí)行 后面的程序,否則不執(zhí)行。所以,要是把a(bǔ).c里面的 return 0; 刪除或者改為 return 99; ,那么你只能看到 I love you. 。也就是說(shuō),程序b.c就不執(zhí)行了。現(xiàn)在,大家該明白 return 0; 的作用了吧。
三、main()函數(shù)的參數(shù)
C編譯器允許main()函數(shù)沒(méi)有參數(shù),或者有兩個(gè)參數(shù)(有些實(shí)現(xiàn)允許更多的參數(shù),但這只是對(duì)標(biāo)準(zhǔn)的擴(kuò)展)。這兩個(gè)參數(shù),一個(gè)是int類型,一個(gè)是字符串類型。第一個(gè)參數(shù)是命令行中的字符串?dāng)?shù)。按照慣例(但不是必須的),這個(gè)int參數(shù)被稱為argc(argument count)。大家或許現(xiàn)在才明白這個(gè)形參為什么要取這么個(gè)奇怪的名字吧,呵呵!至于英文的意思,自己查字典吧。第二個(gè)參數(shù)是一個(gè)指向字符串的指針數(shù)組。命令行中的每個(gè)字符串被存儲(chǔ)到內(nèi)存中,并且分配一個(gè)指針指向它。按照慣例,這個(gè)指針數(shù)組被稱為argv(argument value)。系統(tǒng)使用空格把各個(gè)字符串格開(kāi)。一般情況下,把程序本身的名字賦值給argv[0],接著,把最后的第一個(gè)字符串賦給argv[1],等等。
現(xiàn)在我們來(lái)看一個(gè)例子:
//c.c
#include "stdio.h"
int main(int argc, char *argv[])
{
int count;
printf("The command line has %d arguments:
", argc - 1);
for(count = 1; count argc; count++)
printf("%d: %s
", count, argv[count]);
return 0;
}
編譯運(yùn)行,在命令行輸入c I love you 回車,下面是從命令行運(yùn)行該程序的結(jié)果:
The command line has 3 arguments:
1:I
2:love
3:you
從本例可以看出,程序從命令行中接受到4個(gè)字符串(包括程序名),并將它們存放在字符串?dāng)?shù)組中,其對(duì)應(yīng)關(guān)系:
argv[0] ------ c(程序名)
argv[1] ------ I
argv[2] ------ love
argv[3] ------ you
至于argc的值,也即是參數(shù)的個(gè)數(shù),程序在運(yùn)行時(shí)會(huì)自動(dòng)統(tǒng)計(jì),不必我們操心。
這個(gè)例子中,每個(gè)字符串都時(shí)一個(gè)單詞(字母),那既然是字符串,要把一句話當(dāng)作參數(shù)賦給程序該怎么辦?你可以在命令行里這樣輸入 c "I love you." "I’m too."。程序運(yùn)行結(jié)果:
The command line has 2 arguments:
1:I love you.
2:I’m too.
其對(duì)應(yīng)關(guān)系:
argv[0] ------ c(程序名)
argv[1] ------ I love you.
argv[2] ------ I’m too.
要注意的是,你在命令行的輸入都將作為字符串形式存儲(chǔ)于內(nèi)存中。也就是說(shuō),如果你輸入一個(gè)數(shù)字,那么要輸出這個(gè)數(shù)字,你應(yīng)該用%s格式而非%d或者其他。
再來(lái)看一個(gè)例子:
//d.c
#include "stdio.h"
int main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(argv[1], "w");
fputs("I love you.", fp);
fclose(fp);
return 0;
}
編譯運(yùn)行,打開(kāi)命令行并輸入d love.txt 回車。這樣,打開(kāi)d.c文件所在的目錄,你會(huì)發(fā)現(xiàn)多了一個(gè)名為 love.txt 的文件,打開(kāi)后里面的內(nèi)容正是世界上說(shuō)的最多的那句話。
當(dāng)然,你可能會(huì)說(shuō)我不需要使用命令行參數(shù)就可以做到這些。是的,你當(dāng)然可以。使用命令行參數(shù)的理由或許就是練習(xí)命令行用法,以備以后需要編寫(xiě)基于命令行的程序。還有一個(gè)好處是,不需要C環(huán)境就可以運(yùn)行已經(jīng)編譯好的程序。比如,你把上面那個(gè)程序編譯后生成的d.exe發(fā)給你的女朋友,再告訴她怎么運(yùn)行,這樣,你的女朋友可以用另一種方式體會(huì)到你對(duì)她的濃情蜜意。
參考:
分享標(biāo)題:c語(yǔ)言中必須要的函數(shù) c程序中必須有的函數(shù)
文章源于:http://www.chinadenli.net/article16/ddogdgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、Google、定制網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)