作业帮 > 综合 > 作业

子函数中得出的两个变量如何被主函数调用(C语言)

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/04 14:04:46
子函数中得出的两个变量如何被主函数调用(C语言)
假设子函数中通过公式得到两个变量值x,y,主函数中需要用到这两个值,该用什么方法调用?
子函数中得出的两个变量如何被主函数调用(C语言)
有两种常用的方法:
1.用一个结构体,返回一个结构体,包含xy两个变量
2.使用引用/指针
谢谢采纳
再问: 能给举个例子吗?谢谢!
再答: 以求返回一个整数的平方和相反数为例吧 比如 typedef struct Value{int x;int y;}val; val fun(int n) { val m; m.x = n * n;//平方 m.y = -n; //相反数 return m;// 返回这个结构体 }
再问: 大师,如果需要用到指针呢?上面那个程序有点不懂,可否用指针举个例子。万般感谢!
再答: 指针的话,那就简单一些了。这时候可以不要返回值。这时候比如说,你有x,y两个数,要把x变为它的平方,y变为自己的相反数。 方法如下: void fun(int *x,int *y) { int t; t = (*x) * (*x); *x = t; t = -*y; *y = t;//这里当然可以直接写,比如*y = -*y,但是不好看,所以就这么写了,x的同理 } 调用的时候 比如在main里面 x和y是int类型 fun(&x,&y); 谢谢采纳
再问: 大师,可否这样,我现在在子函数中得出x,y了,也找你这种方法进行了指针调用,但主函数中用x,y时任然有错,可否给一个教完整的程序,包括子函数和主函数?万分感谢!!
再答: #include void fun(int *x, int *y) { *x = 1; *y = 2; } int main() { int a,b; fun(&a,&b); printf("%d\t%d\n",a,b); return 0; }