標準main有兩種寫法如下:
第一種:不接受任何參數列
int main( void )
{
return 0;
}
第二種:接受兩個參數列
int main( int argc, char **argv)
{
return 0;
}
在此將研究第二種寫法 int main( int argc, char **argv ) 內的argc與argv部分。
1. argc 為 argument count參數個數的縮寫,代表包括指令本身的參數個數,系統會自動計算。
example:假設程式所生成出來的執行檔為Test.exe ,
a. 在終端機輸入Test.exe C:\a.txt ,此為兩個參數所以argc = 2 , argv[0] = Test.exe 、argv[1] = C:\a.txt
b. 在終端機輸入Test.exe C:\1234.txt,此為兩個參數所以argc = 2 , argv[0] = Test.exe 、argv[1] = C:\1234.txt
c. 在終端機輸入Test.exe 1 2 3 ,此為四個參數所以argc = 4 , argv[0] = Test.exe 、argv[1] = 1、argv[2] = 2、argv[3] = 3
2. argv 為 argument value, 為使用者在命令列所輸入的字串,系統會自動將程式本身的名稱指定給argv[0],程式名稱後面所接續的參數依序指定給argv[1]....
小試身手小範例
#include <stdio.h>
int main( int argc, char **argv )
{
int i = 0;
printf( "argc = %d\n", argc);
for( i=0; i!=argc; ++i){
printf( "argv[%d] = %s\n", i, argv[i] );
}
return 0;
}