argc表示參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)中argv[0]為自身運(yùn)行目錄路徑和程序名,argv[1]指向第一個(gè)參數(shù)、argv[2]指向第二個(gè)參數(shù)、等等。以下面的代碼為例:
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供銀州網(wǎng)站建設(shè)、銀州做網(wǎng)站、銀州網(wǎng)站設(shè)計(jì)、銀州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、銀州企業(yè)網(wǎng)站模板建站服務(wù),10年銀州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
#include?stdio.h
int?main(int?argc,char?**argv)
{
for(int?num=0;?num!=argc;?++num)
printf("%s\n",?argv[num]);
return?0;
}
直接編譯運(yùn)行上面的程序,此時(shí)argc的值是1,表示只有一個(gè)參數(shù),實(shí)際上就是程序本身,參數(shù)argv[0]的內(nèi)容即為生成程序的具體目錄。
在cmd中運(yùn)行時(shí),可以通過(guò)空格來(lái)隔離輸入的參數(shù),通過(guò)下圖,應(yīng)該更容易理解啦。
#includestdio.h
int is_witlun(char p,char *pt)
{
int i=0;
int flag=0;
while(*(pt+i)!='\0')
{
if(p==*(pt+i))
{flag=1;
break;}
else
i++;
}
if(flag==1)
return 1;
else
return 0;
}
int main()
{
int is_witlun(char p,char *pt);
char a[10],b,*c,d;
c=a;
printf("請(qǐng)輸入10個(gè)字符的字符串:\n");
for(int i=0;i10;i++)
scanf("%c",(c+i));
scanf("%c",d); //防止你輸入完數(shù)組后按回車,回車被賦予給了b;
printf("請(qǐng)輸入要檢查的字符:\n");
scanf("%c",b);
if(is_witlun(b,c)==1)
printf("您要檢查的字符在字符串中!\n");
else
printf("您要檢查的字符不在字符串中!\n");
return 0;
}
C語(yǔ)言中計(jì)算指數(shù)函數(shù)使用pow,不是power,兩個(gè)參數(shù)都是double類型的,第一個(gè)是底數(shù),第二個(gè)是指數(shù)。例如pow(3,0.5)表示3的0.5次方,就是3開(kāi)平方。
argc代表參數(shù)數(shù)量,后面的數(shù)組代表參數(shù)
我們經(jīng)常用的main函數(shù)都是不帶參數(shù)的。因此main 后的括號(hào)都是空括號(hào)。實(shí)際上,main函數(shù)可以帶參數(shù),這個(gè)參數(shù)可以認(rèn)為是 main函數(shù)的形式參數(shù)。C語(yǔ)言規(guī)定main函數(shù)的參數(shù)只能有兩個(gè), 習(xí)慣上這兩個(gè)參數(shù)寫為argc和argv。因此,main函數(shù)的函數(shù)頭可寫為: main (argc,argv)C語(yǔ)言還規(guī)定argc(第一個(gè)形參)必須是整型變量,argv( 第二個(gè)形參)必須是指向字符串的指針數(shù)組。加上形參說(shuō)明后,main函數(shù)的函數(shù)頭應(yīng)寫為: main (argc,argv) int argv; char *argv[]; 或?qū)懗桑?main (int argc,char *argv[])
由于main函數(shù)不能被其它函數(shù)調(diào)用, 因此不可能在程序內(nèi)部取得實(shí)際值。那么,在何處把實(shí)參值賦予main函數(shù)的形參呢? 實(shí)際上,main函數(shù)的參數(shù)值是從操作系統(tǒng)命令行上獲得的。當(dāng)我們要運(yùn)行一個(gè)可執(zhí)行文件時(shí),在DOS提示符下鍵入文件名,再輸入實(shí)際參數(shù)即可把這些實(shí)參傳送到main的形參中去。 DOS提示符下命令行的一般形式為:
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:/E6 24 BASIC dbase FORTRAN ,由于文件名E6 24本身也算一個(gè)參數(shù),所以共有4個(gè)參數(shù),因此argc取得的值為4。argv參數(shù)是字符串指針數(shù)組,其各元素值為命令行中各字符串(參數(shù)均按字符串處理)的首地址。 指針數(shù)組的長(zhǎng)度即為參數(shù)個(gè)數(shù)。數(shù)組元素初值由系統(tǒng)自動(dòng)賦予。
main(int argc,char *argv[]){
while(argc--1) printf("%s/n",*++argv);
}
本例是顯示命令行中輸入的參數(shù)。如果上例的可執(zhí)行文件名為e24.exe,存放在A驅(qū)動(dòng)器的盤內(nèi)。因此輸入的命令行為:
C:/a:e24 BASIC dBASE FORTRAN 則運(yùn)行結(jié)果為:
BASIC
dBASE
FORTRAN
該行共有4個(gè)參數(shù),執(zhí)行main時(shí),argc的初值即為4。argv的4個(gè)元素分為4個(gè)字符串的首地址。執(zhí)行while語(yǔ)句,每循環(huán)一次 argv值減1,當(dāng)argv等于1時(shí)停止循環(huán),共循環(huán)三次, 因此共可輸出三個(gè)參數(shù)。在printf函數(shù)中,由于打印項(xiàng)*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、 三次循環(huán)分別打印后二個(gè)字符串。而參數(shù)e24是文件名,不必輸出
double Cylinder(h,r) //參數(shù)沒(méi)有指定類型啊
double Cylinder( double h, double r) 改成這樣試試
網(wǎng)頁(yè)名稱:c語(yǔ)言雙參數(shù)函數(shù),c語(yǔ)言main函數(shù)里最多2個(gè)參數(shù)
鏈接URL:http://muchs.cn/article20/hscpjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、標(biāo)簽優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、營(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)