使用引用调用时被调用者和调用者的值

时间:2016-12-19 02:54:40

标签: scope reference lexical-scope

我遇到了一个混乱,当我通过引用将变量x传递给变量y时,x和y现在应该指向相同的位置,但我得到的输出不相同。

详细讨论如下: http://gateoverflow.in/94182/programming-output 我已尽力向用户解释这些内容,但我仍然无法让他充分信服,也许我缺乏一些概念。

粗略代码示例:

364656.551: [Full GC 364656.552: [CMS364657.837: [CMS-concurrent-sweep: 1.493/97.968 secs] [Times: user=300.13 sys=1.86, real=97.97 secs]
 (concurrent mode failure): 1590748K->1090269K(1605632K), 9.2142390 secs] 1780699K->1090269K(1812096K), [CMS Perm : 61890K->61714K(103144K)] icms_dc=12 , 9.2145846 secs] [Times: user=9.21 sys=0.00, real=9.21 secs]

enter image description here

我认为,如果问题是变量是静态的,那么ab的值不应该从13改变,但是a的值应该是13 * 13 = 169,但我的推理与所谓的调用相反。参考是关于。

来自未经授权的书籍的pascal代码,请提出一些见解。

1 个答案:

答案 0 :(得分:0)

我不得不审查范围界定术语。我自己在静态和动态范围之间感到困惑。静态作用域用于所有现代编程语言。我得出结论,a和b在相应的打印语句中的值应为169.