• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インクリメント演算子について)

インクリメント演算子とは?課題の解説と結果を解説

このQ&Aのポイント
  • インクリメント演算子とは、プログラミングで頻繁に使われる演算子の一つです。
  • この演算子は、変数の値を1だけ増加させることができます。
  • また、x++の結果が10から始まる理由と、増加していった最後のxがなぜ14になるのかについても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • G-Monkey
  • ベストアンサー率38% (14/36)
回答No.2

x++は(プリインクリメントといいます)インクリメント演算子を使わないと misaki-hina さんの書かれているように x=x+1; と書くことになりますが 1行の中に複数の命令(?)orintfとx++がありますので、 どちらが先に実行されるかが問題になります。 実行コード順で展開した風にを書き直すと printf("1ずつ増加\n"); printf("%d,",x++); printf("%d,",x++); printf("%d,",x++); printf("%d,",x++); printf("%d\n",x); は printf("1ずつ増加\n"); printf("%d,",x);  この時xは10 x=x+1;       ここでxは11 printf("%d,",x); x=x+1; printf("%d,",x); x=x+1; printf("%d,",x); x=x+1; printf("%d\n,",x); という風に展開して書けます。 ちなみに  printf("%d,",++x); は  x=x+1;  printf("%d,",x); となります。 インクリメント、デクリメントは便利ですけどちょっとややこしいですよね!

noname#140177
質問者

お礼

なるほど 確かにややこしいですね でも、なんとなくですが、分かった気がします。 これからもっと勉強して、もっと理解できるようにしたいです!! ありがとうございます(^^)

その他の回答 (2)

回答No.3

>詳しく解説をお願いします。 理由というか動作は#1のedomin7777さんのおっしゃる通りです。 大学生ということで、一つアドバイスをすると、 C言語というのは、設計された当時にシステムーすなわちOSを効率よく記述することを目標に設計されました。 当時は大型コンピュータでさえ、メモリが1Mbyteあれば大容量という時代でしたから、そういう資源の制約の中でなるべく効率よくアセンブラのプログラムに変換できる言語として策定されたのがC言語です。当時の最新マシンはDEC(現在HP)のPDP11でした。C言語はPDP11で効率よく動作されるように設計されており、PDP11のアークテクチャを色濃く反映すようになっています。 そういうことで、学生さんでしたら温故知新でDECの PDP7, PDP8, PDP11, VAX11 のCPUのアークテクチャを詳しく研究してみることをお薦めします。

noname#140177
質問者

お礼

まだC言語を勉強し始めたばかりなので プログラムはなかなか難しいですね(^^;) これからもっと勉強していきたいと思います!! ありがとうございました!!

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

評価する順番が大切。 x++ で、xを評価してからインクリメントします。 なので、最初のprintf文は10の後インクリメントして11になります。 インクリメントしてから評価するには++xとします。

noname#140177
質問者

お礼

x++と++xは違うんですね(..;) なかなかややこしそうですが、もっと勉強したいと思います ありがとうございました!!

関連するQ&A

専門家に質問してみよう