C99セクション6.5.6のパラグラフ8と9を理解しようとしています(加算演算子)
パラ8は次のことを意味しますか?
int a [4];
int *p = a;
p --; /* undefined behaviour */
p = a + 4; /* okay */
p --; /* okay */
p += 2; /* undefined behaviour */
p = a;
p += 5 - 5; /* okay */
p = p + 5 - 5; /* undefined behaviour */
段落9については、ptrdiff_tは常に2つのポインターの差を保持するのに十分な大きさであると理解していました。しかし、「値がptrdiff_t型のオブジェクトに適合する場合」という表現は、この理解が間違っていることを示唆しているようです。私の理解が間違っているのか、それともC99が何か別の意味を持っているのか。
ドラフト標準へのリンクはここにあります:http: //cboard.cprogramming.com/c-programming/84349-c-draft-standards.html