我的问题是:当我用 C 编写函数原型时,如下所示:
void foo(int *vector);
做同样的事情:
void foo(int vector[MAX_LENGTH]);
对于函数,总是作为指针传递?代码是一样的吗?
提前致谢。
这很微妙。 C 中的数组不是指针,但 C 不允许将数组作为函数参数传递。所以当你有void foo(int vector[MAX_LENGTH]);
,本质上你所做的就是告诉其他程序员(以及未来的你)这个函数需要一个数组MAX_LENGTH
传递给它。编译器不会帮助你。它会默默地将你的数组转换为指针。
This http://www.lysator.liu.se/c/c-faq/c-2.html#2-4解释得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)