【发布时间】:2013-06-10 20:35:43
【问题描述】:
我刚刚开始了我的回归根项目;学习 C。老实说,当您需要开发桌面/服务器应用程序时,抽象很好,但是使用 C,事情变得个人化了。这很好,换了!
现在进入重点;我正在阅读使用带有函数的数组(Programming in C, Stephen G. Kochan。)我了解到,当将函数作为参数传递时,编译器将始终将引用视为指针,如下所示:
void foo (char *array);
以这个为例:
void foo (char *a)
{
a[0] = 'R'; // side effect
}
int main (void)
{
char a[] = "The quick brown fox jumps over the lazy dog!";
foo (a);
}
我没有得到有关返回数组或指向数组的指针的函数的信息。该函数会更改其参数中的数组,从而导致副作用(如上所示)。
函数是否可以返回指向数组的指针?还是上述方法只是首选?
提前感谢那些可以提供解释的人。
【问题讨论】:
-
void main()应该是int main(void)。请修复你的代码,烧掉任何告诉你写void main()的书;它的作者不懂语言。 (我刚刚在 Amazon 上查看了 Stephen G. Kochan 的“Programming in C”;至少在第 3 版中,我能够看到的示例正确使用了int main(void)。) -
阅读comp.lang.c FAQ的第6部分。
-
@KeithThompson - 抱歉打扰了。一个错字
-
void main(void)并不比void main()好。这是int main(void)。 -
@7SLEVIN:不,不可能从函数返回数组。 n 这与不明智无关;如果你尝试它,你将返回一个指向第一个元素的指针,不是一个数组。它们是不同的东西。一抓;您可以将数组包装在结构中。
标签: c