"NS2 Simulator"를 사용하여 컴퓨터 네트워크를 시뮬레이션하고 있습니다. char *
대신 const char* const* argv
을 사용해야하는 이유를 정말로 이해하지 못합니까?"char *"대신 "const char * const * argv"를 사용하는 이유는 무엇입니까?
대신 char *
을 사용할 수 있습니까? 이 주제에 대한 많은 품질 관리가 있지만 그것에 대해 혼란스러워했습니다. 이 질문에 "중복"이라고 표시하지 마십시오. 아래 기능에서 const char* const* argv
을 사용하는 이유는 무엇입니까? 이것이 C++ 표준의 규칙입니까? 그 대신 string
또는 char **
을 사용할 수 있습니까?
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'의 두 번째 인수가'char **'유형이어야한다고 명령합니다. – vsoftco
@Cornstalks 또는'char * argv []'는 OP의 이익을 위해 이것을 게시하는 것만으로도 작동 할 것입니다. –