我正在使用“NS2 Simulator”模拟计算机网络。我真的不明白为什么我们应该const char* const* argv使用char *?
我可以用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));
}
Run Code Online (Sandbox Code Playgroud)
为什么我们应该使用“const ... argv”而不是“char *”?
“const”来自程序员,命令编译器在您编写的代码尝试修改 argv 时通知您。
我可以用 char * 代替吗?
有可能,有时并不重要。但是如果你错误地修改了argv(或者无论const var名称是什么),那么编译器不会让你知道你犯了一个错误,结果可能是你不想要的,甚至是UB。
| 归档时间: |
|
| 查看次数: |
5579 次 |
| 最近记录: |