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
}
vec3 const vptr
一樣
const vec3 vptr
所有類型定義?前兩者有什麼區別?我認爲
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
這與其說是'VEC3常量vptr'調整到'常量浮動* vptr'你不能把這個聲明
。只是對於一個函數參數來說,兩者是等價的。 – Peter
@彼得他們不是。數組參數實際上被調整爲某些(基本上全部)情況下的指針。弗拉德說,調整,而不是忽略這個細節更正確。 – 2501