インクリメント、デクリメントについて

最終更新日:2004-06-24.

今回は、変数の値やアドレスを1増やしたり1減らしたりする
方法について。
インクリメントは変数の値を1増やしたり、変数のアドレスを1進める。
デクリメントは変数の値を1減らしたり、変数のアドレスを1減らす。

以下のような変数があるとします。

int i;
int *ip;

int型の変数iの値を1増やす方法としては、
i+1;
i++;
++i;
などがあります。
また、変数iの値を1減らす方法としては、
i-1;
i--;
--i;
などがあります。

そして、int型のポインタipの値を1進める方法としては、
ip+1;
ip++;
++ip;
などがあります。
また、ポインタipの値を1減らす方法としては、
ip-1;
ip--;
--ip;
などがあります。

「i++」と「++i」は同じような働きがありますが、
「i++」はiの値を採用してから1増やし、
「++i」はiの値を1増やしてからその値を採用します。

では、ソースにしてみましょう。
+------------------------------------------------------------+
/* filename=no018-1.c */
/* include */
#include <stdio.h>
/* main */
int main( )
{
int i;
char c;
char *p;
char word[32]="インクリメントとデクリメント。";
i=1;
while( i<=9 ){
printf("%d", i++);
}
putchar('\n');
i=1;
while( i<=9 ){
printf("%d", ++i);
}
putchar('\n');
c='A';
while( c<='Z' ){
printf("%c", c++);
}
putchar('\n');
p=&word[0];
while( *p ){
printf("%c", *p++);
}
return 0;/* 終了 */
}
+------------------------------------------------------------+

上記のソースをコンパイルして実行すると以下のように表示されました。
123456789
2345678910
ABCDEFGHIJKLMNOPQRSTUVWXYZ
インクリメントとデクリメント。

戻る