c -为什么我的指针传递函数给我一个错误的输出?



#include  <stdio.h>    
void func2 (int num, int *result);   
int main()    
{    
int num, result;    
printf("Enter a number: n"); 
scanf("%d", &num);
func2(num, &result);    
printf("func2(): %dn", result);    
return 0;    
}
void func2(int num, int *result)     
{    
//key in code    
}

在void func2中我写了

int i=0;    
result=&i;      
while (num!=0)    
{    
i+=((num%10)*(num%10));    
num=num/10;    
}

,但是程序没有正确返回变量I的值。我的变量赋值有什么问题?

预期输出:

Enter a number:    
24 (user enter)    
func2(): 20

实际输出:

Enter a number:    
24 (user enter)    
func2(): 32767

您需要通过result间接分配,而不是将result设置为另一个变量的地址。

int i=0;    
while (num!=0)    
{    
i+=((num%10)*(num%10));    
num=num/10;    
}
*result = i;

相关内容

  • 没有找到相关文章

最新更新