配列の要素を指すポインタについてなんですが、

int arr[N], *p;
p = arr-1;  //(a)
p = arr+N;  //(b)
p = arr+N+1; //(c)

この場合(b)だけが合法で、(a)(c)はアドレスを計算ようとしするだけで
まずいんでしたっけ?