b是全局变量,只有一份拷贝,所以任何函数对它的修改都作用在它本身上。
第一次循环,传给fun的是&a[2],即数组第三个元素(值为3)的地址;这时,b是2,b=*k+b就是相当于b=b+3,所以b变成了5,返回b,这时在main函数中,b=fun(&a[i])+b;相当于b=5+b;(注意,此时b的值已是5),所以b变成10,输出10
第二次循环,传给fun的是&a[3],即数组第四个元素(值为4)的地址;这时,b是10,b=*k+b就是相当于b=b+4,所以b变成了14,返回b,这时在main函数中,b=fun(&a[i])+b;相当于b=14+b;(注意,此时b的值已是14),所以b变成28,输出28