国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
帶參數(shù)的主函數(shù)2
9.4 帶參數(shù)的主函數(shù)

  C語言規(guī)定,主函數(shù)也可以帶參數(shù),就像我們編寫的用戶函數(shù)一樣,可以帶參數(shù),也可以不帶參數(shù)。主函數(shù)的形式參數(shù)只有兩個:一個形式參數(shù)是記錄了參數(shù)的個數(shù),這是一個整型的形式參數(shù),其名稱規(guī)定為“argc”;第二個形式參數(shù)依次記錄了在調(diào)用該主函數(shù)(即執(zhí)行程序)時給出的實際參數(shù)內(nèi)容(字符串),這個形式參數(shù)是一個字符指針型數(shù)組,每個元素指向一個實際參數(shù)對應(yīng)的字符串,第二個形式參數(shù)名稱規(guī)定為“argv[]”。

  帶參數(shù)的主函數(shù)在定義時,其函數(shù)頭的定義規(guī)定如下:
    main(argc,argv)
    int argc; /*第1個形式參數(shù):整型*/
    char *argv[]; /*第2個形式參數(shù):字符指針型數(shù)組*/
  如果主函數(shù)不帶參數(shù),執(zhí)行目標(biāo)程序時只要按下列格式輸入程序名就可以了:
    程序名↙ (其中的↙表示回車,下同)
  我們通常把在操作系統(tǒng)下按上述格式執(zhí)行目標(biāo)程序時,輸入的一行稱為“命令行”。
  若主函數(shù)帶參數(shù),則執(zhí)行目標(biāo)程序時,應(yīng)按下列格式給出相應(yīng)的實際參數(shù):
    程序名 實際參數(shù)1 實際參數(shù)2 … 實際參數(shù)n↙
  上述格式也是一個命令行。
  此時,系統(tǒng)會自動在內(nèi)存開辟區(qū)域依次存放程序名和所有的實際參數(shù),同時給主函數(shù)的形式參數(shù)賦值,結(jié)果如下:
    形參argc 賦值為n+1,表示連同程序名在內(nèi)共有n+1個參數(shù)。
    形參argv[0]賦值為存放“程序名”字符串的首地址;
    argv[1]賦值為存放“實際參數(shù)1”字符串的首地址;
        .
        .
        .
    argv[n]賦值為存放“實際參數(shù)n”字符串的首地址。

  例如,有一個名為“my_copy.c”的程序,其主函數(shù)帶有參數(shù)。如果在執(zhí)行時,輸入的命令行如下:my_copy a:\ccw1.txt b:\ccw2.txt↙
  則形式參數(shù)的值如下:
    argc=3
    argv[0]指向字符串 "my_copy"
    argv[1]指向字符串 "a:\ccw1.txt"
    argv[2]指向字符串 "a:\ccw2.txt"
  在程序中可以通過形式參數(shù)獲得相應(yīng)的實際參數(shù),參與程序的運(yùn)算和加工。

  【例9-8】編一個帶參數(shù)的主函數(shù)。運(yùn)行時,在程序名后帶有2個整數(shù),程序的功能是輸出這2個整數(shù)的和。

  程序清單如下:

    #include "stdlib.h" /*程序中用到數(shù)據(jù)轉(zhuǎn)換類函數(shù)*/
    main(argc,argv)
    int argc;
    char *argv[];
    { int x,y,sum;
    x=atoi(argv[1]); /*將第1個實際參數(shù)對應(yīng)的字符串轉(zhuǎn)換成整數(shù)存入x*/
    y=atoi(argv[2]); /*將第2個實際參數(shù)對應(yīng)的字符串轉(zhuǎn)換成整數(shù)存入y*/
    sum=x+y;
    printf("%d+%d=%d\n",x,y,sum);
    }

  假定本程序編譯后的目標(biāo)程序名為"test1.exe",執(zhí)行該程序時輸入的命令行如下:

      test1 5 10↙

  則程序運(yùn)行后的輸出結(jié)果為:5+10=15。

  【例9-9】編一個程序,完成磁盤文件復(fù)制。源文件名和目標(biāo)文件名隨程序運(yùn)行時輸入。例如,復(fù)制a盤根目錄下的文件ccw1.txt為a盤根目錄下的ccw2.txt,則執(zhí)行程序時輸入的命令行如下:程序名 a:\ccw1.txt a:\ccw2.txt↙。

  程序清單如下:

    #include "stdio.h" /*程序中用到文件處理類函數(shù)*/
    main(int argc,char *argv[])
    { FILE *fp1,*fp2;
    if ((fp1=fopen(argv[1],"rb"))==NULL)
      { printf(“"file can not open!\n");
      exit(0);
    } /*以只讀方式打開argv[1]指向的源文件名對應(yīng)的二進(jìn)制文件*/
    if ((fp2=fopen(argv[2],"wb"))==NULL)
      { printf("file can not open!\n");
      exit(0);
    } /*以只寫方式打開argv[2]指向的目標(biāo)文件名對應(yīng)的二進(jìn)制文件*/
    while(!feof(fp1)) /*復(fù)制源文件到目標(biāo)文件*/
      fputc(fgetc(fp1),fp2);
    fclose(fp1); /*關(guān)閉fp1所指向的源文件*/
    fclose(fp2); /*關(guān)閉fp2所指向的目標(biāo)文件*/
    }

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C語言入門教程-命令行參數(shù)
int main(int argc,char* argv[])
用C語言來統(tǒng)計文件中單詞的個數(shù)
main函數(shù)的參數(shù)詳解
關(guān)于int main(int argc,char *argv[])的問題[轉(zhuǎn)](僅參考 不全)
argc argv
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服