2016-12-19 6 views
0

変数xを参照によって変数yに渡すと、xとyの両方が同じ場所を指し示すはずですが、出力は出力されません同じ。参照による呼び出しを使用するときの呼び出し先と呼び出し元の値

完全な詳細な議論はここにある:http://gateoverflow.in/94182/programming-output たぶん私はいくつかの概念を欠いています、私は、ユーザーにコンテンツを説明するために全力を試してみましたが、私はまだ完全に彼をconvienceすることができません。

粗サンプルコード:

var b : int; 
procedure M (var a, int) 
begin 
a= a*a; 
print(a); 
end; 
procedure N 
begin 
b= b+1; 
M(b); 
end; 
begin 
b=12; 
N; 
print(b); 
end; 

enter image description here

I変数が静的であることが問題となっているように、それが与えられたと仮定するので、ABの値が13から変化してはならないが、その値は13 * 13 = 169でなければなりませんが、私の推論は参照によって呼び出されるものに反するものです。

+0

スクリーンショットを投稿する代わりに、ここにコードをコピーして貼り付けてください。また、これはPascalのように見えます。 –

+0

"変数xを参照変数yに渡すと、xとyの両方が同じ場所を指すはずです"これは正しい。上記のコードのどの部分があなたの理解を困難にしていますか? –

+0

出力部分、私は= 169 b = 13を得ています。理想的には両方とも169になるはずですか? –

答えて

0

スコープ用語を確認する必要がありました。静的スコープと動的スコープの間で混乱しました。静的スコープは、すべての最新のプログラミング言語で使用されています。私はaとbの両方がそれぞれの印刷ステートメントで169の値を持つべきだと結論づけます。

関連する問題