为什么argv []被声明为const?

时间:2010-12-13 02:14:04

标签: objective-c

在Objective-C中,为什么argv []被声明为const:

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

2 个答案:

答案 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编写者的工作更轻松 - 尤其是他们自己的工作!