如何解决将指针或数组传递给函数
如果我在C语言中有一个固定大小的数组,我可以将其传递给函数,只要该函数的参数是指针或没有指定大小的数组即可,例如:
int a[3] = {0,1,2};
void fn1(int *a);
void fn2(int a[]);
我还注意到我可以同时使用标准成员访问和指针算术。
两种方法之间是否存在正式或功能差异?从逻辑上讲,我认为第二个更好,因为这表明我应该将输入参数视为数组,但这只是我的猜测。
任何提示将不胜感激。
解决方法
两种方法之间在形式上或功能上有什么区别吗?
这两种方法之间没有形式或功能上的差异。
在编译期间,int a[]
被转换为int *a
。但是为了获得更好的可读性,请使用int a[]
而非int *a
。
print (a[2])
转换为print (*a + (2 * sizeof(int)))
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。