很抱歉,如果这很愚蠢,但是我做了一些简单的代码来阐明我的观点。即是这个。如果我从主函数中将int x,y用作参数,是否应该不能使用return()将它们导出回主函数中?
#include <stdio.h>
/*function prototype */
int add(int x, int y);
int
main()
{
int x, y;
printf("enter # to add ->\n");
scanf("%d", &x);
printf("enter # to add ->\n");
scanf("%d", &y);
/* function call */
/* print statement 1 */
printf("The sum is -> %d, x -> %d and y was-> %d \n", add(x, y));
/*print statement 2 always is fine*/
printf("The sum is -> %d", add(x,y));
/* print statement 3 */
printf(" the sum is -> %d, x-> %d, and y-> %d \n", add(x, y), x, y);
return(0);
}
/*function*/
int add(int x, int y)
{
int sum;
sum = x+y;
return(sum, x, y);
}
样本 Print1 ex。如果x,y输入分别为6.7,则得到“总和为-> 13,x-> 6和y was-> -1346575416”。显然y存在问题。.
Print3 ex。对于此示例,这是最简单的方法,但是我需要知道如何通过函数得出 x,y的任何操纵值
我尝试重命名函数中的x,y变量(即xx = x,yy = y),添加它们,然后在return(sum,xx,yy)中使用它们,但这也无济于事。
感谢您的帮助
答案 0 :(得分:0)
这不能用C语言完成,但是您可以尝试一些方法,例如使用struct或使用指针。 例如:
typedef struct _OP{
int x, y, sum;
}Operate;
Operate add(Operate addOperation){
addOperation.sum = addOperation.x + addOperation.y;
return addOperation;
}
int main(){
Operate num, result;
num.x = 10;
num.y = 5;
result = add(num);
printf("x : %i, y : %i, sum : %i", result.x, result.y, result.sum);
return 0;
}
希望有帮助,