9
typedef float vec3[3];
void test(vec3 const vptr) {
*vptr = 1.f; // error: assignment of read-only location
vptr[0] = 1.f; // error: assignment of read-only location
vptr++; // no error
}
は、すべてのtypedefのためCのtypedef constの引数
const vec3 vptr
と同じ
vec3 const vptr
ですか?最後の2つの間に違いはありますか?私は
vec3 const vptr <==> float* const vptr // a constant pointer to an object
const vec3 vptr <==> const float* vptr // a pointer to a constant object
??? <==> const float* const vptr // a constant pointer to a constant object
を使用して、この宣言
を取得することはできません。それは、関数のパラメータの場合、2つは同等です。 – Peter
@Peterそうではありません。配列パラメータは、特定の(基本的にはすべての)状況で実際にポインタに調整されます。 Vladは、この詳細を無視するよりも、調整されたと言った方が正しいです。 – 2501