a=1,b=2と定義したものを、a=2,b=1と反転させて表示させたい場合についての質問です。
#include<stdio.h>
int main(void){
int a=1,b=2;
int tmp;
tmp =a;
a=b;
b=tmp;
printf("a=%d,b=%d/n",a,b);
return 0;
}
このプログラムについてですが、私(初心者)の認識では、
tmp=aの時点で
a=1,b=2,tmp=a
a=bの時点で
a=b,b=2,tmp=a
b=tの時点で
a=b,b=tmp,tmp=a
となり、printfによって
a=b,
b=tmp
と誤って表示されるものだと思っています。
しかし実際には正しく表示されるので、私の認識のどこかが誤っているものと思われます。
どこが間違っているのか、また、なぜこのプログラムが正しく機能するのかを説明していただきたいです。
回答2件
あなたの回答
tips
プレビュー