这个C程序输出是0,0为什么啊

2025-04-16 12:54:01
推荐回答(1个)
回答1:

调用 func ( a, b) 时, 你可以理解为创建了两个新的变量(形参 p1, s),然后 p1 = a, s = b
方便理解,这就相当于 p1 = &a, s = &b

就是说取到 a 数组的地址, 赋给形参 p1 (内存里一个真实的变量,和 a 无关, 只是其值等于 a 的地址)
同理,取到 b 数组的地址, 赋值给形参 s

然后 func 中各种操作, 都没有碰 s,只有一句 s = t; 这句话是把 s 这个形参里的地址值改成了和临时变量 t 一样的值。
这和数组 b 没有半毛钱关系, 所以 b 没有变。