これらのうち、より正しく、より広く使用されているのはどれですか? 実際の質問は最後の質問です。動作が変わると思います。
int *test; //for this, it is probably both?
int* test;
int& test;
int &test;
実際の質問:
const int test;
int const test;
const int* test;
int* const test; //<-- I guess this also have a different meaning if I consider the last one?
const int& test;
int const& test; //also, considering last one, any difference?
const int*& test;
int* const& test; //<-- this is the correct one for stating "I won't modify the passed object, but I may modify the one pointed"? I have had problems with the other one sometimes, does the other one has some other meaning?
const int* const& test; //<-- another meaning?
また、この件に関する視覚的な「あいまいさ」をご存知でしたら、ご指摘いただければ幸いです。