私は "NS2 Simulator"を使ってコンピュータネットワークをシミュレートすることに取り組んでいます。 char *
の代わりにconst char* const* argv
を使用する理由がわかりません。なぜ "char *"の代わりに "const char * const * argv"を使用するのですか?
代わりにchar *
を使用できますか?この件について多くのQAがありますが、私はそれについて混乱しました。この質問を「重複」としないでください。 なぜ我々はconst char* const* argv
を以下の関数で使用しますか?これはC++標準のルールですか?その代わりにstring
またはchar **
のいずれかを使用できますか?私たちが代わりに "のchar *" の "ARGV ... CONST" を使用すべき理由
Function Connector::command.
//~ns/common/connector.cc
int Connector::command(int argc, const char*const* argv)
{
Tcl& tcl = Tcl::instance();
...
if (argc == 3) {
if (strcmp(argv[1], "target") == 0) {
...
target_ = (NsObject*)TclObject::lookup(argv[2]);
...
}
...
}
return (NsObject::command(argc, argv));
}
'argv'が' main'の典型的な引数であると仮定すると 'char *'ではなく 'const char * const *'ではなく 'char **'でなければなりません。 – Cornstalks
そして、もしあなたが 'const char * const * argv'のこの"モンスター "が何を意味しているのかを知りたければ、[this](http://c-faq.com/decl/spiral.anderson.html) 。前述のように、標準Cでは、 'main'の2番目の引数は' char ** '型でなければなりません。 – vsoftco
@Cornstalksまたは 'char * argv []'も動作し、OPのためにこれをポストするだけです。 –