ポインタ演算 – その2

ついて来てるかな?

#include <stdio.h>

int main(int argc, char *argv[])
{
	char str[] = "0123456789";
	char *p = str;
	printf( "(p + 0): %s\n", (p + 0) );
	printf( "(p + 1): %s\n", (p + 1) );
	printf( "(p + 2): %s\n", (p + 2) );
	printf( "(p + 3): %s\n", (p + 3) );
	printf( "(p + 4): %s\n", (p + 4) );
	printf( "(p + 5): %s\n", (p + 5) );
	printf( "(p + 6): %s\n", (p + 6) );
	printf( "(p + 7): %s\n", (p + 7) );
	printf( "(p + 8): %s\n", (p + 8) );
	printf( "(p + 9): %s\n", (p + 9) );
	return 0;
}

実行結果
(p + 0): 0123456789
(p + 1): 123456789
(p + 2): 23456789
(p + 3): 3456789
(p + 4): 456789
(p + 5): 56789
(p + 6): 6789
(p + 7): 789
(p + 8): 89
(p + 9): 9

配列の最後に’\0’が入ってるのは、もう聞き飽きたかな?
今回は、先頭アドレスを1つずつずらして出力したよ。
予想通りの結果になったかな?

Leave a Comment