這個(gè)兩個(gè)是用于從命令行獲取運(yùn)行參數(shù)的。
成都創(chuàng)新互聯(lián)專注于伽師網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供伽師營銷型網(wǎng)站建設(shè),伽師網(wǎng)站制作、伽師網(wǎng)頁設(shè)計(jì)、伽師網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造伽師網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供伽師網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
具體你可以看一下
C語言規(guī)定main函數(shù)的如果帶參數(shù)只能有兩個(gè),習(xí)慣上這兩個(gè)參數(shù)寫為argc和argv。因此,main函數(shù)的函數(shù)頭可寫為:
int main (argc,argv)
C語言還規(guī)定argc(第一個(gè)形參)必須是整型變量,argv( 第二個(gè)形參)必須是指向字符串的指針數(shù)組。加上形參說明后,main函數(shù)的函數(shù)頭應(yīng)寫為:
main (int argc,char *argv[])
main函數(shù)的參數(shù)值是從操作系統(tǒng)命令行上獲得的。當(dāng)我們要運(yùn)行一個(gè)可執(zhí)行文件時(shí),在控制臺(tái)提示符下鍵入文件名,再輸入實(shí)際參數(shù)即可把這些實(shí)參傳送到main的形參中去。
控制臺(tái)提示符下命令行的一般形式為:
C:\可執(zhí)行文件名 參數(shù) 參數(shù)……;
但是應(yīng)該特別注意的是,main 的兩個(gè)形參和命令行中的參數(shù)在位置上不是一一對(duì)應(yīng)的。因?yàn)?main的形參只有二個(gè),而命令行中的參數(shù)個(gè)數(shù)原則上未加限制。argc參數(shù)表示了命令行中參數(shù)的個(gè)數(shù)(注意:文件名本身也算一個(gè)參數(shù)),argc的值是在輸入命令行時(shí)由系統(tǒng)按實(shí)際參數(shù)的個(gè)數(shù)自動(dòng)賦予的。
例如有命令行為:
C:\E24 BASIC foxpro FORTRAN
由于文件名E24本身也算一個(gè)參數(shù),所以共有4個(gè)參數(shù),因此argc取得的值為4。argv參數(shù)是字符串指針數(shù)組,其各元素值為命令行中各字符串(參數(shù)均按字符串處理)的首地址。 指針數(shù)組的長度即為參數(shù)個(gè)數(shù)。數(shù)組元素初值由系統(tǒng)自動(dòng)賦予。
void表示參數(shù)為空,即這個(gè)函數(shù)不含參數(shù),比如定義一個(gè)print函數(shù)。
程序執(zhí)行總是從main函數(shù)開始,如果有有其他函數(shù),則完成對(duì)其他函數(shù)的調(diào)用后再返回到主函數(shù),最后由main函數(shù)結(jié)束整個(gè)程序。在執(zhí)行程序時(shí),由系統(tǒng)調(diào)用main函數(shù)。main 函數(shù)是在程序啟動(dòng)中完成對(duì)具有靜態(tài)存儲(chǔ)期的非局部對(duì)象的初始化之后被調(diào)用的。它是程序在有宿主 (hosted)環(huán)境(亦即有操作系統(tǒng))中所指定的入口點(diǎn)。自立程序(啟動(dòng)加載器,操作系統(tǒng)內(nèi)核,等等)的入口點(diǎn)則是由實(shí)現(xiàn)定義的。
擴(kuò)展資料:
主函數(shù)的兩個(gè)形參形式中的形參,允許從執(zhí)行環(huán)境中傳遞任意的多字節(jié)字符串(它們通常被稱為命令行參數(shù)),各個(gè)指針 argv.. argv[argc-1] 指向每個(gè)這些字符串的第一個(gè)字符。argv[0] 是指向一個(gè)表示用于執(zhí)行該程序自身的名字的空結(jié)尾多字節(jié)字符串(或者當(dāng)執(zhí)行環(huán)境不支持時(shí),為空字符串 "")的開頭字符的指針。
這些字符串是可以改動(dòng)的,雖然對(duì)它們的改動(dòng)并不會(huì)被傳回給執(zhí)行環(huán)境:比如可以用 std::strtok 來使用它們。由 argv 所指向的數(shù)組的大小至少為 argc+1,其最后一個(gè)元素 argv[argc] 保證為一個(gè)空指針。
*代表指針,F(xiàn)ILE代表是一個(gè)文件類型,stream是參數(shù)名稱。
FILE * stream表示的是一個(gè)叫stream的參數(shù),他是一個(gè)指針,并且這個(gè)指針指向FILE(文件)類型。
char * format表示的是一個(gè)叫format的參數(shù)指向char(字符)類型的指針。
一般寫法都是: 函數(shù)類型 函數(shù)名稱;
[argument]代表參數(shù)可選,就是可以繼續(xù)增加參數(shù)。
()表示函數(shù)有返回值,在main函數(shù)結(jié)束的時(shí)候要有return語句,如果沒有就會(huì)有warningvoid表示函數(shù)沒有參數(shù)。
int表示它是返回值是int型(整型),main表示它的名字是mian(函數(shù)名),()表示它是一個(gè)函數(shù),它相當(dāng)于是重載操作符,因?yàn)閙ain是一個(gè)指針,經(jīng)過操作符的操作,它才變成一個(gè)int型的引用。
擴(kuò)展資料
int main()的使用
intmain()
intmain(void)
intmain(intargc,char**argv[])
intmain(intargc,char**argv[],char*env[])
voidmain()
voidmain(void)
voidmain(intargc,char**argv[])
voidmain(intargc,char**argv[],char*env[])
那個(gè)const char就是格式字符串,后面的3點(diǎn)省略號(hào)是不定參數(shù),自己搜一下。
第二三個(gè)函數(shù)關(guān)鍵是看size_t的定義,應(yīng)該也沒什么奇特的,就是宏而已,實(shí)現(xiàn)才是關(guān)鍵,網(wǎng)上可以找到開源實(shí)現(xiàn)。
最后一個(gè)挺復(fù)雜的,有函數(shù)指針。
本題括號(hào)內(nèi)所填內(nèi)容依次為
(1)c != '#'
(2)c == ' '
(3)c == '\n'
說明:
(1)c != '#'
題目中要求輸入的結(jié)束符為#,因此在while循環(huán)中循環(huán)條件為c!='#',只要c的值不為'#',就可以一直輸入字符。
(2)c == ' '
sp表示空格,只需要輸入字符c和空格匹配,即c == ' '。
(3)c == '\n'
cr表示回車,字符c和回車匹配,此項(xiàng)中,回車轉(zhuǎn)義字符為'\n',即c == '\n'。
測(cè)試結(jié)果如下圖所示:
測(cè)試結(jié)果