C言語で前置・後置インクリメント演算子の動作を示すプログラムを作成する方法
インクリメント演算子(++)とは
インクリメント演算子は、変数の値を1だけ増加させるために使用される演算子です。「前置インクリメント(++a)」と「後置インクリメント(a++)」の2種類があり、記述位置によって処理の順序が異なります。
前置インクリメント: 演算子をオペランドの前に置きます。値が先に1増やされ、その増加した値に対して処理が行われます。
例:
z = ++a; → a = a + 1; その後 z = a;
後置インクリメント: 演算子をオペランドの後ろに置きます。現在の値で処理が先に行われ、その後に値が1増やされます。
例:
z = a++; → z = a; その後 a = a + 1;
例1:前置インクリメント演算子の使用例
以下は前置インクリメント演算子を使用したCプログラムです。
main ( ){
int A = 10, Z;
Z = ++A;
printf("Z= %d", Z);
printf(" A=%d", A);
}出力結果
Z =11 A=11
変数Aは10ですが、「++A」により先に11へ増加し、その値がZに代入されるため、両方とも11になります。
例2:後置インクリメント演算子の使用例
以下は後置インクリメント演算子を使用したCプログラムです。
main ( ){
int a = 10, z;
z = a++;
printf("Z= %d", z);
printf("A=%d", a);
}出力結果
Z=10 A=11
「a++」では、まず現在の値10がZに代入され、その後にaが11に増加します。このためZは10、Aは11となります。
デクリメント演算子(--)とは
デクリメント演算子は、変数の値を1だけ減少させるために使用される演算子です。インクリメントと同様に、「前置デクリメント」と「後置デクリメント」の2種類があります。
前置デクリメント: 演算子をオペランドの前に置きます。値が先に1減らされ、その減少した値に対して処理が行われます。
例:
z = --a; → a = a - 1; その後 z = a;
後置デクリメント: 演算子をオペランドの後ろに置きます。現在の値で処理が先に行われ、その後に値が1減らされます。
例:
z = a--; → z = a; その後 a = a - 1;
例1:前置デクリメント演算子の使用例
以下は前置デクリメント演算子を使用したCプログラムです。
main ( ){
int a = 10, z;
z = --a;
printf("Z= %d", z);
printf(" A=%d", a);
}出力結果
Z=9 A=9
「--a」では先にaが9へ減少し、その値がZに代入されるため、両方とも9になります。
例2:後置デクリメント演算子の使用例
以下は後置デクリメント演算子を使用したCプログラムです。
main ( ){
int a = 10, z;
z = a--;
printf("Z= %d", z);
printf("A=%d", a);
}出力結果
Z=10 A=9
「a--」では、まず現在の値10がZに代入され、その後にaが9に減少します。このためZは10、Aは9となります。
まとめ
前置(++a / --a)は「値を変更してから使う」、後置(a++ / a--)は「値を使ってから変更する」という違いがあります。ループ処理などで意図しないバグを防ぐためにも、この動作の違いを正しく理解しておくことが重要です。
-
C言語の構造体(struct)入門|宣言・初期化・アクセス方法をサンプルコードで解説
構造体(structure)とは、異なるデータ型を持つ複数の変数を、ひとつの名前でまとめて扱えるようにしたデータ構造です。関連する情報(たとえば本のページ数・著者名・価格など)をひとまとめに管理できるため、C言語プログラミングにおいて非常に重要な概念となっています。構造体の宣言と初期化構造体を宣言する一般的な書式は以下の通りです。struct tagname { datatype member1; datatype member2; ... datatype member n; };各要素の意味は次の通りです。 struct … 構造体を定義するためのキーワード
-
C言語で配列を逆順に反転させるプログラムの書き方
配列とは、共通の名前のもとで管理される、関連性のあるデータ項目の集まりのことです。同じ型の複数の値を効率的に扱いたい場合に活用されます。配列の宣言構文C言語で配列を宣言する際の基本的な構文は以下のとおりです。データ型 配列名 [サイズ];配列の初期化配列は、宣言と同時に初期化することもできます。int a[5] = { 10,20,30,40,50};この例では、整数型の配列 a の5つの要素に、それぞれ10から50までの値が順番に格納されています。C言語で配列を逆順にする方法配列の要素を逆順に並べ替えるには、要素の入れ替え(スワップ)やコピーのテクニックを利用します。たとえば、4つの要素を持