C語言 main()函數(shù)的參數(shù)
所有的函數(shù)在內(nèi)存中都有一個(gè)入口地址,稱為函數(shù)的指針。要調(diào)用某函數(shù),需要找到該函數(shù)的入口地址,從該地址開始執(zhí)行,而main()函數(shù)是整個(gè)程序的入口。main()函數(shù)也可以被調(diào)用,認(rèn)為是被系統(tǒng)所調(diào)用。在以往的程序中,主函數(shù)main()都使用其無參形式。實(shí)際上,主函數(shù)main()也可以使用帶形參的形式。
1.main()函數(shù)的有參形式
main()函數(shù)的有參形式為:
main(int argc, char *argv[ ])
{
…
}
【例題】求ASCII最大的字符
建立一個(gè)main()函數(shù)帶形參的程序,程序執(zhí)行時(shí),從鍵盤上輸入任意多個(gè)字符,求其中ASCII最大的字符。
#include <stdio.h>
main(int argc, char *argv[])
{
int i;
char c=*argv[l]; /*假設(shè)第一個(gè)字符就是最大值*/
for(i=2;i<argc;i++)
if(c<*argv[i])
c=*argv[i];
printf("The max character is %c\n",c);
}
程序執(zhí)行過程如下:
①先將該程序編譯并鏈接,但不執(zhí)行。
②找到“開始”菜單下的“運(yùn)行”對話框,輸入“cmd”單擊“確定”按鈕,進(jìn)入命令行窗口中。
③打開命令行窗口默認(rèn)的目錄“C:\WINDOWS\system32”,將路徑定位到該文件的可執(zhí)行文件所在的目錄。如本程序保存在“C:\”,則該程序的可執(zhí)行文件存在于“C:\debug”目錄下。使用如下DOS命令進(jìn)入:
cd\
cd debug
④之后輸入該文件名,例如本文件名為(lianxl.c),并給出參數(shù):
lianxil a b c d e f g
輸出結(jié)果為:
The max character is c
2.說明
(1)帶形參的主函數(shù),必須在操作系統(tǒng)狀態(tài)下輸入主函數(shù)所在的可執(zhí)行文件名及所需的實(shí)參,然后按Enter鍵,才可執(zhí)行。
(2)執(zhí)行該帶形參的main()函數(shù)的程序命令行的一般格式為:
可執(zhí)行文件名 實(shí)參[ 實(shí)參2……]
實(shí)參與實(shí)參之間以空格分隔。
(3)形參argc是命令行中參數(shù)的個(gè)數(shù)(可執(zhí)行文件名本身也算一個(gè))。如本例中,形參argc的值為8。
(4)形參argv是一個(gè)字符指針數(shù)組’即其元素值都是指向?qū)崊⒆址闹羔槨?/p>
在本案例中,元素argv[0]指向第1個(gè)實(shí)參字符串“l(fā)ianxiV”,元素argv[1]指向第2個(gè)實(shí)參字符串“a”,元素argv[2]指向第3個(gè)實(shí)參字符串“b”,元素argv[3]指向第4個(gè)實(shí)參字符串“c”,元素argv[4]指向第5個(gè)實(shí)參字符串“d”……元素argv[7]指向第8個(gè)實(shí)參字符串“f”。
點(diǎn)擊加載更多評論>>