初学C语言,请教各位

1.怎么样可以return回来2个值?比如说我要输出的是6 7,这样怎么来实现?

2.现在所做的题目,老师都要我们写一个什么driver文件。。就是2个文件,把main写在driver文件里,而把其他程序写在另一个文件里...为什么要这样写呢?

3.是不是main里return 0不是return 0这个数字,但是其他函数里return的是一个数字?

4.printf总给我一个错误:invalid use of void expression...
这是code:
#include <stdio.h>
int main() {
int k;
scanf("%d", &k);
printf("%d", sumsqr(k));
}

5.有的时候main的后面跟上一个void,但有的时候没有...为什么呢?

谢谢大家...

1.怎么样可以return回来2个值?比如说我要输出的是6 7,这样怎么来实现?
一种是用指针,将你要返回的值用写在指针里,此时不需要return了。例如:
void f(int *p1,int *p2)
{
*p1 = 6;
*p2 = 7;
}

main()
{
int a1,a2;
f(&a1,&a2);
}
将指针传递给函数f,这样调用完f以后,main中的变量a1和a2的值就改为6和7了。

另一种做法是用struct,将你要返回的变量定义到一个struct里面,然后返回这个struct就可以了。

2.现在所做的题目,老师都要我们写一个什么driver文件。。就是2个文件,把main写在driver文件里,而把其他程序写在另一个文件里...为什么要这样写呢?

将主函数和其它函数分开存放,可以便于程序的管理。将代码量很大时,这种优势就非常明显了。

3.是不是main里return 0不是return 0这个数字,但是其他函数里return的是一个数字?

其实是一样的,只是main里面return的0一般你不会去捕捉使用而已。

4.printf总给我一个错误:invalid use of void expression...
这是code:
#include <stdio.h>
int main() {
int k;
scanf("%d", &k);
printf("%d", sumsqr(k));
}

从你贴出的程序看,这段代码没有问题,应该是出在别的地方,可能是sumsqr子函数的问题,还有main被定义为了int返回类型,因此最后最好加上return 0; 当然这个不会引起错误。

5.有的时候main的后面跟上一个void,但有的时候没有...为什么呢?

不知道你的具体意思,如果是说main void的形式,那肯定是不对的,如果是void main()形式的定义,那是可以的,至少在vc下是ok的。因为c语言并没有规定main的返回类型。不过标准C++规定main必须是int返回类型。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-20
1. C语言只能return回一个值,如果要返回多个值,可以
(1)设置全局变量
(2)把变量地址作为参数传递
(3)返回一个结构体,或指向一段内存的指针
2. 没必要写一个driver文件,所有函数都写在一个文件中也没有问题
3. main也是一个函数,return的就是0这个数字,表示程序运行成功
4. 你写的函数sumsqr()的返回值是void吧,要返回一个整型数字
5. main(void)和main()是一样的,void就是空的意思本回答被提问者和网友采纳
第2个回答  2009-02-20
return语句只能返回一个函数值;
想要返回2个函数值用全局变量也行
比如 int a=7,b=8
max(int,int)
{....
return(a+b)
}
main()
{
....
printf("%d,%d,%d",a,b,(a+b));
}
第3个回答  2009-02-20
1.return语句是不可以返回两个语句的。去看看全局变量的用法吧。
2.这个叫定义函数。如:
main()
{
....
printf("%d,%d,%d",a,b,(a+b));
}
max(int,int)
{。。。
return(a+b)
}
3.return 0; 就是返回0这个数。
4.“sumsqr(k)”这个是matlab源代码,使用前要先声明的。
5.跟上一个void表示只做你给的“动作”,不跟则有值的返回。
第4个回答  2009-02-20
wwww

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网