2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C言語のインクリメント

Last updated at Posted at 2018-02-09

#はじめに
C言語のインクリメントについてよく忘れるのでメモを残しておきます。
+を-と置き換えればデクリメントにも当てはまります。

#種類

	x = x+1; /* 通常 */
	++x;     /* プリインクリメント */
	x++;     /* ポストインクリメント */
	x += 1;  /* 代入演算子 */

4種類ともxを1増加させています。
前後でxを利用していなければどれも同じです。
++xはプリインクリメントと呼ばれ、式で使用される前にxが1増加します。
x++はポストインクリメントと呼ばれ、式で使用された後にxが1増加します。
+=と書く代入演算子はx = x+1と同じ意味です。

#例
上記の複合パターンは奥深いため、まとめてみました。
##通常+代入演算子

	array[i=i+1] += j;
=>	
	i++;
	array[i] = array[i] + j;

配列要素は優先度が高いため先に計算されます。
またarray[i=i+1] = array[i=i+1] + j;とはなりません。

##代入演算子+代入演算子

	array[i+=1] += j;
=>	
	i++;
	array[i] = array[i] + j;

##ポストインクリメント+代入演算子

	array[++i] += j;
=>
	i++;
	array[i] = array[i] + j;

##プリインクリメント+代入演算子

	array[i++] += j;
=>	
	array[i] = array[i] + j;
	i++;

##プリインクリメント+ポストインクリメント+代入演算子

	array[++i + j--] += --k;
=>	
	i++;
	k--;
	array[i + j] = array[i + j] + k;
 	j--;

ここまでくると読みにくいので書かないと思いますが、このようになります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?