-2

在这段代码中 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 不会打印正常结果。我该如何解决?

4

1 回答 1

3

您需要将指针传递给您的pro函数:afaipro_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;
}

在您现有的代码中,有两对完全独立的变量proafai:一对在pro_afai函数中,第二对在main. 您需要将现有的对从 main 传递给 pro_afai 以对其进行更改,您可以通过将指向该变量的指针传递给pro_afai函数来做到这一点。

于 2013-09-23T12:32:13.310 回答