按照以下步骤分析即可 总共三个变量 s k m 第一步,k = 5, s、m不存在 第二步, m = 3,k = 5, m = 3, s 不存在 第三步,传入m的地址,在f函数中用局部变量s承接,m = 3; k = 5; s = &m 第四步,s = &k,m = 3; k = 5; s = &k; 第五步, *s = k = 5; m = 3;k = 5; s = &k; 从第三步到第四步,s从指向m变成了指向k,然后再对s解引用,此时s已经指向了k,更改的也是k的值 所以是3,5
烈艳红唇
2024-10-15 08:19:10
s = &k 这句执行执行后s是k的地址 原来装的是m的地址 *s = k; *s现在就是k 这句相当于k = k.
鲜血染红嫁衣
2024-10-15 13:53:50
把 s = &k; 这一行去掉,就是5,5 s = &m; 是参数传递过去的 s=&k; 马上又重新赋值了 pointer s