<<戻る

ポインタ演算を確認してみる。

 

#include <stdio.h>

int main(int argc, char *argv[]) {
		int *pi;
		int i = 0;
		pi = &i;

/* ポインタ演算は、演算子の優先順位を理解していると分かりやすい
 * 以下のサンプルは全て同等
 */
		*pi = *pi + 1; /* 1 */

		i = 0;
		*pi+=1; /* 1 */
		printf("%d\n", *pi);

		i = 0;
		++*pi;	/* 1 */
		printf("%d\n", *pi);

		i = 0;
		(*pi)++; /* 1 */
		printf("%d\n", *pi);

		/* 単項演算子(++,--)は、右から左に解析するので 
		 * 括弧が無いとポインタをインクリメントしてしまう
		 */
		i = 0;
		*pi++;
		printf("%d\n", *pi);

}