所以你可以这样做:
您还可以进行以下声明:
void foo(const int * const pIntArray, const unsigned int size);
这段话表示指针是只读的,它所指向的整数也是只读的。
你可以在函数内部像这样访问它:
blah = pIntArray[0]
您还可以进行以下声明:
void foo(const int intArray[], const unsigned int size);
这和之前的差不多,但你可以这样做:
intArray = &intArray[1];
我能写这样的代码吗:
void foo(const int const intArray[], const unsigned int size);
这是否正确?
const
是输入,一个非const
是输出。例如:void foo(const int inArray[const], int outArray[const])
表示我将修改outArray
的内容。这是否是一个明智的设计模式还有待讨论——我刚开始使用它,但对我来说很有意义。同时也缩短了你可能会自己绊倒的绳子——后来的某个人可能会不小心重定向一个指针,但是有了一个 const 指针参数,这是不可能的。 - Matt Clarkson