衝啊!pointer!
今日主題:命令列引數
在C語言中,main()函數是程式的進入點,但往往我們在下命令或執行程式時會給予不定參數,例如:
dir /p
copy 1.txt 2.txt
format c:/s
其中,/p,1.txt,2.txt,c:/s 皆為參數。
為了達到這個目標,可利用命令列引數來完成。
具備命令列引數的程式,只要將main()函數改為:
int main(int argc, char *argv[])
其中argc表示參數個數,argv[]則表示一個指向陣列指標的變數。若以此指令來看:
C:\>copy 1.txt 2.txt
則 argc = 3,argv值如下:
argv[0] = "C:\copy.exe"
argv[1] = "1.txt"
argv[2] = "2.txt"
第25天寫到這裡了,何時會有記憶體配置部份呢?
記憶體應該都配到D槽去了...
2013年記憶體當成ramdisk去了,待2014年再來著墨...
C:\>copy 1.txt 2.txt
則 argc = 3,argv值如下:
檢視原始檔複製到剪貼簿列印關於argv[0] = "C:\copy.exe"
argv[1] = "1.txt"
argv[2] = "2.txt"
.exe那來的呀??...還有那個">"怎也沒了??...
我的測試環境為linux,執行檔為"demo"(無".exe"後綴),則在$執行結果如下:
<pre class="c" name="code">
$demo 1.txt 2.txt
argv[0]=demo
argv[1]=1.txt
argv[2]=2.txt
(以下未經測試),若環境為dos,執行檔為"demo.exe",則執行結果推論如下:
<pre class="c" name="code">
C:\>demo 1.txt 2.txt
argv[0]=demo.exe (或是應為"demo"?)
argv[1]=1.txt
argv[2]=2.txt
所以,總裁說得有理,金感謝~