需要从函数中返回多于1个变量值时,最常用、也较简单的办法是在主调函数中声明变量,把变量的地址传给被调函数,在被调函数中通过指针直接操作主调函数中的变量。如此题中在主调函数中声明x和y,把x和y的地址(指针)传给被调函数。举例如下:
//#include "stdafx.h"//If the vc++6.0, with this line.能给举个例子吗?谢谢!
追答以求返回一个整数的平方和相反数为例吧
比如 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;
}