iT邦幫忙

DAY 25
6

C++ 指標 30日系列 第 21

C++ 指標 30日(25)

衝啊!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"

鐵人文總整理


上一篇
C++ 指標 30日(24)
下一篇
C++ 指標 30日(26)
系列文
C++ 指標 30日26

2 則留言

0
一級屠豬士
iT邦高手 1 級 ‧ 2013-10-10 14:31:10

第25天寫到這裡了,何時會有記憶體配置部份呢?
醉

總裁 iT邦好手 1 級‧ 2013-10-10 19:00:44 檢舉

記憶體應該都配到D槽去了...失神

ted99tw iT邦高手 1 級‧ 2013-10-10 19:14:46 檢舉

2013年記憶體當成ramdisk去了,待2014年再來著墨...謝謝

0
總裁
iT邦好手 1 級 ‧ 2013-10-10 20:09:38

C:\>copy 1.txt 2.txt

則 argc = 3,argv值如下:
檢視原始檔複製到剪貼簿列印關於

argv[0] = "C:\copy.exe"
argv[1] = "1.txt"
argv[2] = "2.txt"

.exe那來的呀??...疑惑還有那個">"怎也沒了??...暈

ted99tw iT邦高手 1 級‧ 2013-10-11 09:21:44 檢舉

我的測試環境為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

所以,總裁說得有理,金感謝~謝謝

我要留言

立即登入留言