通過main()函式的引數給程式增加一些處理資訊,可以使程式和使用者實現更多互動式的通訊. 如果你的程式需要命令列引數編譯的話,那麼源程式的主函式main()就需要帶引數—也就是所謂的命令列引數。帶有引數的main()函式頭格式為:
void main(int argc, char * argv) 或void main(int argc, char ** argv)
其實,argc和argv也可以寫成其他的合法識別符號(identifier)來表示,我在這裡遵從一般情況.
下面來看看這兩個引數的具體含義:
第乙個引數argc是int型的,它用來存放命令列引數的個數,實際上argc所存放的數值比命令列引數的個數多1,即將命令字(可執行檔名)也計算在內。
第二個引數argv是乙個一維的一級指標陣列,它是用來存放命令列中各個引數和命令字的字串的,並且規定:
argv[0]存放命令字
argv[1]存放命令列中第乙個引數
argv[2]存放命令列中第二個引數
… 這裡,argc的值和argv各元素的值都是系統自動組賦值的。
下面是乙個可以進行命令列引數編譯的具體例子(vc++6.0下除錯通過):
//test.cpp
#i nclude
void main(int argc, char *argv)
} 上述原始檔經過編譯連線後生成可執行檔案test.exe.
這時我們沒有對引數進行設定,系統自動賦值給引數,執行後得到的結果是:
the number of command line arguments is:1
the program name is:e:/project/test/debug/test.exe
press any key to continue
然後在vc中, 我們進行如下設定: 在 project-->setting -->debug-->program arguments裡面任意設定命令列引數(隨便輸入啦):
this is the first time i post documents here.^_^
那麼:
argv[1]存放命令列中第乙個引數 ,即this
argv[2]存放命令列中第二個引數 ,即is…
然後執行,得到的結果是:
the number of command line arguments is:10
the program name is:e:/project/test/debug/test.exe
the command line arguments:
this
is the
first
time
i post
documents
here.^_^
press any key to continue
VC裡面的cstring跟int char 轉化
1 cstring,int,string,char 之間的轉換 string 轉 cstring cstring.format s string.c str char 轉 cstring cstring.format s char char 轉 string string s char string...
c語言陣列放在main函式裡面和外面的區別
最近a演算法題的時候碰到一道題 乙個數列前三項都為1,之後每項的值等於前三項之和,求第20193024項的最後4位數字。一開始寫的 如下 結果一直爆 terminated due to signal segmentation fault 11 這個錯誤,改了好久沒改出來。之後在stackoverfl...
numpy裡面的argmax函式
函式原型 def argmax a,axis none,out none a 輸入array axis 為0代表列方向,為1代表行方向 out 結果寫到這個array裡面 1 從簡單的一維開始 import numpy as np a np.array 3,1,2,4,6,1 bb np.argma...