Cheat Sheet (C/C++ const)
以下は、c でも c++ でも同じ。
X(x) になってるところは全て警告orエラーになる。
void foo(void*x){} #define C const #define X(x) /* x */ int main() { int * * p000; int * * C p001; int * C * p010; int * C * C p011; int C * * p100; int C * * C p101; int C * C * p110; int C * C * C p111; foo(p000[0]); foo(p000); foo(&p000); foo(p001[0]); foo(p001); X(foo(&p001)); foo(p010[0]); X(foo(p010)); foo(&p010); foo(p011[0]); X(foo(p011)); X(foo(&p011)); X(foo(p100[0])); foo(p100); foo(&p100); X(foo(p101[0])); foo(p101); X(foo(&p101)); X(foo(p110[0])); X(foo(p110)); foo(&p110); X(foo(p111[0])); X(foo(p111)); X(foo(&p111)); return 0; }