2010-12-13 19 views

答えて

5
int main(int argc, const char *argv[]) { } 

const値(char *)が引数である、不変であることを示すため。

プログラム引数がプログラムに渡されると、その値は変更できません。

は、順番に、charの配列であるconst char *のの配列としてこの配列を考えます。最大限に活用されていないが、それはシェル/プログラムランチャーを書くの/ etc簡単になりますので

{{'h', 'e', 'l', 'l', 'o', '\0'}, {'w', 'o', 'r', 'l', 'd', '\0'}} 
+1

プログラム引数はCプログラムで変更可能であることが必要です_ _ "argc'と' argv'パラメータと 'argv'配列が指す文字列はプログラムによって変更可能で、最後に格納された値をプログラム間で保持しますスタートアップとプログラムの終了 "_ –

+1

この回答は明らかに間違っています。 @ D.Shawleyが指摘しているように、C99規格は、引数が変更可能であることを明示している(セクション5.1.2.2.1最後の箇条書き)。 Xcodeによって作成されたテンプレートが 'const'を使用しているという事実は間違っています。それかOS Xの実行可能環境はC99に準拠していません。 – JeremyP

0

ので、あなたは引数としてあなたのプログラムに文字列の「Hello World」を通過したと言う、argvは次のようになります。プログラムははるかに複雑です。

そして、「C」のクリエイターは、OS作家の仕事をより簡単にすることを前向きに考えていました。

+0

作成時にCに 'const'キーワードがありませんでした。ところで、D.Shawley氏が指摘したように、C99は、argvが指す文字列はプログラムによって変更可能であると具体的に述べています。 – JeremyP

関連する問題