void fun(int x,int y,int z)
{
z=xx+yy;
}
int main( )
{
int a=31;
fun(3,4,&a);
printf("%d",a);
return 0;
}
想问一下a=25是怎么求出来的
应该是写 星号被认为是斜体了,a 传地址进入,传地址,解引用(*a
)赋值, 就会修改 a 的值,在内部 a的值 = 3x3 + 4x4 = 9 + 16 = 25 。
你的代码应该是这样的
void fun(int x,int y,int *z)
{
*z=x*x+y*y;
}
int main( )
{
int a=31;
fun(3,4,&a);
printf("%d",*a);
return 0;
}
因为参数z是个指针,它告诉函数a变量的地址,然后函数里将x * x + y * y的结果写入到z指向的地址,也就是a变量,因此最终a的值为25
z=xx+yy;能这样写?
3×3+4×4=25
fun 函数 a 传了 地址过去,也就是 fun函数内部的修改,也将影响a变量,
不过你这函数少了 *号吧,参见下面:
*z
= 3 * 3 + 4 * 4 = 25
void fun(int x,int y,int *z)
{
*z=x*x+y*y;
}