发布网友 发布时间:2022-04-22 00:06
共1个回答
热心网友 时间:2024-02-23 23:05
printf("%5d",sum1(&j)); 这一行已经把j变成1了,当printf("%5d",sum2(j));里1+2=3,所以就是这么算出来的追问为什么printf("%5d",sum1(&j)); 把j变成1了呢?那i为什么不变呢?不好意思求教一下
追答int sum1(int *m) 这个函数参数是指针,传入&j是将j的地址传入,所以,在sum1里改变j的值为1,出了函数以后,j的值会保留。i的值变了,你打印i的值就能看到,你这个程序里打印的都是j。