java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
javac 1.7.0_09
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
任何人都可以向我解释上面的代码。我输出为10(在foo中)和1(在main中)。 但我期待10和10(foo和main)。在函数foo中,基地址指向& i。
答案 0 :(得分:1)
p
实际上是foo
的本地(将其视为一个本地变量,它从调用者那里获得数据初始化),因此对它的更改不会反映在匹配参数中(在此情况1}})。现在,如果您更改了数组的内容(也就是ary
和p
将指向),那么这将反映在输出。
答案 1 :(得分:1)
指针p
是函数foo
的本地。因此,更改它的值不会影响main
函数的数组。
如果您想从功能ary
更改foo
的值,请尝试:(当然排除p = &i
)
p[0] = i;
这将使ary[0] = 10