質問: or (and (a, b), and (xor (a, b), cin));//和の繰り上げを計算する式 } ```
回答: 関数の中での変数の値の変化は、ポインタを使うか、戻り値(returnで返される値)を使わないと、関数の外では影響を与えません。 例えば、 void full_adder(int a, int b, int cin, int s, int cout) { s = xor(a, xor(b, cin));//2進数の和を計算する式 cout = or (and (a, b), and (xor (a, b), cin));//和の繰り上げを計算する式 } full_adder(a, b, cin, s, cout)とか、適当な数を入れて実行しても、sとcoutの値は変動しません。 あるいはグローバル変数を使う方法もありますが、これも使われる機会は少ないです。 s0などの値が大きくなってしまった原因は&などポインタ的な指示がどこかに残っていたのかもしれません。