我想參考以下與我的問題相關的代碼。C命令行參數 - argv char數組在哪裏?
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("%c\n", argv[1][1]);
return 0;
}
通常在創建指針之前,必須首先存在變量。但是在C命令行參數中,*argv[]
不參考已定義的char argv
,但它實際上是一個二維數組,它不僅包含地址,還包含命令行參數的元素。這怎麼可能發生。我很欣賞背後的理論。
我的第二個問題是,指針數組怎麼能包含命令行參數的元素?
這是通過操作系統和C運行時庫的啓動代碼來完成。 – Barmar 2015-02-08 07:13:43
另外,考慮一個函數必須被調用才能執行 - 但是誰調用了你的'main()'?魔法!至於「指針數組怎樣才能包含命令行參數的元素」 - 由於命令行參數是字符串,並且在C中,字符串通常由指向其第一個字符的指針引用。 – 2015-02-08 07:18:39
相關如果不是重複:http://stackoverflow.com/q/12332/694576 – alk 2015-02-08 09:27:06