Cprogramming - Main无法识别被调用函数的变量结果。

时间:2013-09-23 12:29:38

标签: c function call

在这段代码中,main()无法识别被调用函数的变量结果, 在这种情况下pro_afai。

#include <stdio.h>

这里我创建了pro_afai函数

int pro_afai(int x,int y){
int pro,afai;
pro=x+y;
afai=x-y;}

main(){

这里我试图将pro = 0和afai = 0声明为main 但它仍然无效,因为它打印0,0。 printf不会从函数中获取结果。

int i,j;
int pro,afai;
printf("2 num:");
scanf("%d %d",&i,&j);
pro_afai(i,j);
printf("\npro=%d\nafai=%d",pro,afai);})

但printf不会打印正常结果。 我该如何解决?

1 个答案:

答案 0 :(得分:3)

您需要将proafai的指针传递给pro_afai函数:

int pro_afai(int* pro, int* afai, int x,int y){
  *pro=x+y;
  *afai=x-y;
}

int main()
{
  int i,j;
  int pro,afai;
  printf("2 num:");
  scanf("%d %d",&i,&j);
  pro_afai(&pro, &afai, i,j);
  printf("\npro=%d\nafai=%d",pro,afai);
  return 0;
}

在现有代码中,有两个完全独立的变量对proafaipro_afai函数中的一对和{{1}中的第二对}}。您需要将现有的对从main传递到pro_afai以对其进行更改,并且可以通过将指向这些变量的指针传递到main函数来实现。