第 1 頁:9.1 宏定義 |
第 3 頁:9.2 文件包含 |
第 4 頁:9.3 條件編譯 |
第 6 頁:9.4 帶參數(shù)的主函數(shù) |
9.4 帶參數(shù)的主函數(shù)
在操作系統(tǒng)下執(zhí)行某個C程序,是環(huán)境對C程序的啟動,可以看作是對該程序的main()函數(shù)的調(diào)用。main()函數(shù)執(zhí)行結(jié)束后,控制返回環(huán)境。為能從環(huán)境向C程序傳遞信息,啟動C程序的命令行可帶有任選的參數(shù)。命令行的一般形式為
程序名 參數(shù)1 參數(shù)2……參數(shù)n
其中程序名和各參數(shù)之間用空白符分隔。
為能讓main()函數(shù)讀取命令行中的參數(shù),環(huán)境將多個參數(shù)以兩個參數(shù)形式傳遞給main()函數(shù)、其中第一個參數(shù)(習(xí)慣記作argc) 表示命令行中參數(shù)的個數(shù)(包括程序名);第二個參數(shù)(習(xí)慣記作argv)是一個字符指針數(shù)組。其中argv[0] 指向程序名字符串的第一個字符,argv[1]指向參數(shù)1字符串的第一個字符,…,argv[argc-1] 指向最后一個參數(shù)字符串的第一個字符。如果利因山等于1,則表示程序名后面沒有參數(shù)。下面的例子用于說明main()函數(shù)對參數(shù)argc
與argv的引用方法。
【例9.l】 回打啟動程序時的命令行各參數(shù)。
# include
void main(int argc, char *argv[] /* 或char **argv; */)
{ int k;
for( k=l; k
printf(“%c”,argv[k],k printf(“\n\n”);
}
如上述程序的執(zhí)行程序名為echopro.exe,執(zhí)行該程序的命令行為:
echopro Hello world!
則程序?qū)⑤敵?/P>
Hello world!
在以上命令行中,根據(jù)約定,main()函數(shù)的參數(shù)argc的值為3;argv[0],argv[1],argv[2]分別指向字符串“echopro”、“Hello”、“world!”的第一個字符。在程序的printf()函數(shù)調(diào)用中,字符輸出格式%c輸出一個字符,若是已輸出了命令行最后一個參數(shù),該格式將輸出一個換行符,若是輸出其它參數(shù),則輸出一個空白符。
相關(guān)推薦:推薦:2010年計算機軟件水平考試必備完美攻略北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |