2009-11-07 ポインタ同士の加減算 C なぜかポインタ同士で差を求めようとするとバイトでのオフセットが返ると思ってた。あぶないあぶない。 正しくはそのポインタ間での要素数が返る。 #include <stdio.h> int main(void) { int arr[] = { 1,2,3 }; int *p1 = &arr[0]; int *p2 = &arr[3]; // sizeof(int) * 3ではなくて3になる printf("p2 - p1 = %d\n", p2 - p1); return 0; } 参考URL C++マニアック,ポインタ,pointer の使い方,C++入門,C++言語講座