逆襲のユージオログ

ジオログ->Y!ブログ->はてなと漂流してきました。

ポインタの秘密

あ…あづぃ…<(>д<;)>

今更ながらなんですがC言語について再発見。
ポインタってインクリメントしても必ずしも+1じゃないんですね

つまり、

int arr[5]={1,2,3,4,5}
int *ptr;
int i;
ptr=arr;
for(i=0;i<5;i++){ //(1)
printf("%d ",arr[i]);
}

for(i=0;i<5;i++){ //(2)
printf("%d ",*(ptr+i*sizeof(int)));
}

for(i=0;i<5;i++){ //(3)
printf("%d ",*(ptr+i));
}


の(1)と同じ結果になるのは(2)と思ってたんですが、
実際は(3)という。
そういえば確かにこう習ってたなぁと。

でもポインタはアドレスを表す数値と考えると
整数みたいに+1される?あれ???って混乱してしまいます。
(実際はsizeof(int)増加していたと)

う~ん、奥が深い…(汗)