我正在用C编程,我想将数组传递给函数;此函数无法修改数组的元素。函数参数的正确语法是什么?
void func(const Foo array_in[])
要么
void func(Foo const array_in[])
还是它们相同?谢谢。
首先,声明const Foo array_in[]
和Foo const array_in[]
在C中完全相同。
其次,当函数的参数类型具有“ T数组”类型时,它将自动调整为“ T指针”类型。因此,编译器假装就像您写的那样:
void func(const Foo *array_in)
或同等
void func(Foo const *array_in)
请注意,两者const Foo *array_in
和Foo const *array_in
C的含义完全相同(指向const Foo的指针)。但是,其Foo * const array_in
含义有所不同(指向Foo的常量指针)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句