ここから本文です

よろしくお願いします。c言語を勉強しています。

s14********さん

2019/10/820:40:37

よろしくお願いします。c言語を勉強しています。

int 型で、a、bをそれぞれ異なる一桁の数に決めました。
a + b を計算したあと、やはり違う数にしたいと思ったらやり直しは可能ですか、不可能ですか。

環境はvc++です。

閲覧数:
29
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

あみやさん

2019/10/821:15:32

数学とプログラミングの変数は違います。
数学では、x=1 としたら、xは1と定義されますが、
プログラミングの変数はデータを入れる箱(正体は特定のメモリ領域)と考えて下さい。
x=1 と書いて、それが実行された段階で、xの中身のデータは1となります。
これを代入と呼びます。

その後、y = x + 1 の様に
xを使うとxに記録されているデータが呼び出されて、計算に使われます。
この場合、さっき代入されて記録された1が呼び出され、
1+1の結果の2が、yに代入されます。

x = 5
と書けば、この時点でxの中身は5で上書きされます。
x=5となっても、前にさかのぼって、y = x + 1 のyが自動的に5+1の6になったりはしません。
あくまで順番に処理されるのがプログラミングだからです。

xは箱ですので、何度でも数値を代入できます。
ただし、覚えているのは最後に入れた値だけです。
毎回データは上書きされます。

質問した人からのコメント

2019/10/12 00:55:19

ありがとうございます!! 大変助かります!!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

bas********さん

2019/10/913:24:59

初期化はあくまで

int a = 100;

みたいにしたときであって、後から a = 20; とするのは代入になります。

ですが、"初期値"にこだわらなければ あとから変更することは可能です。

int a = 10;
int b = 13;
printf( "%d", a + b );
a = 30;

としたとき、aの値の変化を見ればいいです。

最初に int a = 10 としています。

なので a には 10 が入っている状態です。

printfの直後で a = 30 としていますから、

a の値が書き換わって a の値は 30になります。

もし a + b の結果も変動させたければ、工夫が必要です。

例えば

a = 数字;
printf( "%d", a + b );

を毎回やるとか、

ポインタ辺りを使ってやるとか。

gd0********さん

編集あり2019/10/820:45:56

int a, b, c;

a = 1;
b= 2;

c = a + b;

a = 3;
b = 4;

こういうことでしょうか?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる