在这段代码中,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不会打印正常结果。 我该如何解决?
答案 0 :(得分:3)
您需要将pro
和afai
的指针传递给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;
}
在现有代码中,有两个完全独立的变量对pro
和afai
:pro_afai
函数中的一对和{{1}中的第二对}}。您需要将现有的对从main传递到pro_afai以对其进行更改,并且可以通过将指向这些变量的指针传递到main
函数来实现。