const int *
int * var const
C++ (Qt)void Test( const int ** a ){ a = 0; // ok *a = 0; // ok// **a = 0; // error}
C++ (Qt)int data = 5;std::vector<int *> vecPtr;vecPtr.push_back(&data);Test(&vecPtr[0]); // errorconst int ** test = &vec[0]; // error
C++ (Qt)#include <vector>#include <iostream> using namespace std; void test(int** p){ cout << "mutable int = " << **p << endl;} void test(int const* const* p){ cout << "const int = " << **p << endl;} int main(){ int data = 5; vector<int*> vecPtr; vecPtr.push_back(&data); test(&vecPtr[0]); test(static_cast<int const* const*>(&vecPtr[0])); return 0;}
C++ (Qt) test(static_cast<int const* const*>(&vecPtr[0]));}
C++ (Qt)test(const_cast<const int **>(&vecPtr[0]));
C++ (Qt)// оказывается такая записьtypedef int * PInt;const PInt a; // равнозначна такой (константный указатель)int * const a; // а вовсе не такой (указатель на константу)const int * a;
int const * const p;