程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程c語言-CC語言中的main函數中的參數

編程c語言-CC語言中的main函數中的參數

編輯:編程綜合問答
CC語言中的main函數中的參數

就是int argc char *argv[ ] 這個是什麼意思,怎麼樣進行傳參的,求大神指點迷津。。。

最佳回答:


C編譯器允許main()函數沒有參數,或者有兩個參數(有些實現允許更多的參數,但這只是對標准的擴展)。這兩個參數,一個是int類型,一個是字符串類型。第一個參數是命令行中的字符串數。按照慣例(但不是必須的),這個int參數被稱為argc(argument count)。大家或許現在才明白這個形參為什麼要取這麼個奇怪的名字吧,呵呵!至於英文的意思,自己查字典吧。第二個參數是一個指向字符串的指針數組。命令行中的每個字符串被存儲到內存中,並且分配一個指針指向它。按照慣例,這個指針數組被稱為argv(argument value)。系統使用空格把各個字符串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最後的第一個字符串賦給argv[1],等等。

現在我們來看一個例子:

//c.c
#include "stdio.h"
int main(int argc, char *argv[])
{
int count;
printf("The command line has %d arguments:
", argc - 1);
for(count = 1; count < argc; count++)
printf("%d: %s
", count, argv[count]);
return 0;
}
編譯運行,在命令行輸入c I love you 回車,下面是從命令行運行該程序的結果:

The command line has 3 arguments:

1:I

2:love

3:you

從本例可以看出,程序從命令行中接受到4個字符串(包括程序名),並將它們存放在字符串數組中,其對應關系:

argv[0] ------> c(程序名)

argv[1] ------> I

argv[2] ------> love

argv[3] ------> you

至於argc的值,也即是參數的個數,程序在運行時會自動統計,不必我們操心。

這個例子中,每個字符串都時一個單詞(字母),那既然是字符串,要把一句話當作參數賦給程序該怎麼辦?你可以在命令行裡這樣輸入 c "I love you." "I’m too."。程序運行結果:

The command line has 2 arguments:

1:I love you.

2:I’m too.

其對應關系:

argv[0] ------> c(程序名)

argv[1] ------> I love you.

argv[2] ------> I’m too.

要注意的是,你在命令行的輸入都將作為字符串形式存儲於內存中。也就是說,如果你輸入一個數字,那麼要輸出這個數字,你應該用%s格式而非%d或者其他。

再來看一個例子:

//d.c
#include "stdio.h"
int main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(argv[1], "w");
fputs("I love you.", fp);
fclose(fp);
return 0;
}
編譯運行,打開命令行並輸入d love.txt 回車。這樣,打開d.c文件所在的目錄,你會發現多了一個名為 love.txt 的文件,打開後裡面的內容正是世界上說的最多的那句話。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved