#include <stdio.h>

#define NumberOf(p) (sizeof(p)/sizeof(p[0]))

char*  p = "123456";
char  pp[] = "123456";

void main()
{

  printf("%s %d\n", p, NumberOf(p));
  printf("%s %d\n", pp, NumberOf(pp));
}

の結果が、
123456 4
123456 7
になるのは、どーしてですか?