在Objective-C中,为什么argv []被声明为const:
int main(int argc, const char *argv[]) { }
答案 0 :(得分:5)
因为const
表示值(char *
)是不可变的,所以参数是。
一旦程序参数传递给程序,它们的值就不应该是可修改的。
将此数组视为const char *
的数组,而数组又是char
的数组。
所以,说你传递了字符串" hello world"作为参数的程序,argv
将如下所示:
{{'h', 'e', 'l', 'l', 'o', '\0'}, {'w', 'o', 'r', 'l', 'd', '\0'}}
答案 1 :(得分:0)
因为它使得编写shell / program启动程序/等等更简单,而不会使大多数程序更加复杂。
'C'的创造者正在考虑让OS编写者的工作更轻松 - 尤其是他们自己的工作!