请问一下为什么输出的数没有返回值?就是代码中的a,没有值。
include<stdio.h>
int fun(int *p)
{
int sum=0;
for(int i=0;i<10;i++)
{
sum=sum+i;
}
p=&sum;
return 0;
}
int main()
{
int a;
fun(&a);
printf("%d",a);
}
a的值不能这样从函数传给主函数吗?
int fun(int *p)
{
int sum=0;
for(int i=0;i<10;i++)
{
sum=sum+i;
}
p=∑
return 0;
}
int main()
{
int a;
fun(&a);
printf("%d",a);
}
当然可以,
你发现有什么不同吗?
仔细看看你的 ”分号“ , 这种坑,踩几次就记住了。
p=∑
这句改成*p = sum;
p是一个指针变量,一开始指向a,你那样写是把p本身赋值为sum的地址,赋值后p指向sum。修改后的意思是把p所指向的变量赋值为sum,也就是把a赋值为sum。这样结果才是正确的。