指针问题void fun(int x,int y,int *z)

void fun(int x,int y,int z)

z=xx+y
y;

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