#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;