我总是搞砸了怎么用const int*,const int * const和int const *正确的.是否有一套规则来定义您能做什么和不能做什么?
我想知道在任务,传递到职能等方面所做的所有事情和所有不应做的事情.
//Example 1
const double pie = 3.14; //const object
const double *cptr = &pie; //pointer-to-const to const object
double *ptr = &pie; //ERROR - non-pointer-to-const to const object
//Example 2
double pie = 3.14; //non-const object
const double *cptr = &pie; //non-pointer-to-const to non-const object
double *ptr = &pie; //non-pointer-to-const to non-const object
最初我虽然允许指向非const对象的指针,因为它只是意味着指向const的指针不会改变非const对象.
但我只是在c ++书中读到,指向const到非const对象的原因是允许的,因为指针到const指针无法真正知道它指向的对象是否为const,所以它对待对象它指向const但是通过相同的逻辑,非指针指向const会将const对象视为非const对象,但编译器将在编译时抛出错误.
我在这里错过了什么吗?