ここから本文です

プログラミングのことで質問なのですが

アバター

ID非公開さん

2016/11/1911:45:29

プログラミングのことで質問なのですが

C言語の+=と=+の違いを教えてください!
よくわかりません...

閲覧数:
799
回答数:
3

違反報告

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

プロフィール画像

カテゴリマスター

rebouno999さん

2016/11/1912:10:44

「+=」は、「左側の変数に右側の数を足す」という意味です。
int a = 3;
int b = 4;
a += b;
↑の例だと a は 4 が足されて 7 になります。
a = a + b;
と書き換えることも出来ます。
というか、a = a + b; といちいち書かなくても a += b; と書けば同じことになるよっていう便利機能?ですね。

「=+」という演算子は無いですね。C言語的には「=」と「+」に分解されて解釈されます。
int a = 3;
int b = 4;
a =+ b;
は、
a = (+b);
と同じことです。+bは 0 + b みたいなもので、結局 b です。
a は 4 になります。

この質問は投票によってベストアンサーに選ばれました!

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

1〜2件/2件中

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

プロフィール画像

カテゴリマスター

n2q37さん

編集あり2016/11/1913:21:32

x+=y;

x に y を足し込みます。「足す」のではなくて「足し込む」。


x=+y;

x に yが代入されます。それだけです。+ は飾り(?)。単項演算子ですよ。え?C 言語に無い?無いかもしれません。C++ にはありますが。


++x;

x に 1 を足し込みます。x += 1; と同じです。


x++;

これも同じく。やっぱり x += 1; と同じ。え?ほんとに同じかって?

いや、違いがあるんですよ。


printf("%d\n", ++x);

x を +1 した後の x の値が出力されますよ。


printf("%d\n", x++);

x を +1 する前の x の値が出力されますよ。


まだあります。

++(++x);

x に 2 を足し込みます。(x += 1) += 1; と同じです。


++(x++);

エラー。

(x++)++;

これもエラーだって。無理ですよ。


ですからね、後で +1 するってことは、もうそれで変数としての立場が無くなってるんですよね。「足し込む」ことはもう出来ません。

2016/11/1911:59:04

「+=」はありますが、「=+」なんてありません。
なので違いと言われても困ります。

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

  • 取り消す
  • キャンセル

あわせて知りたい

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

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

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

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

閉じる

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