底层const可以用来修饰指针类型,表示指针所指向的内容是不可修改的,但指针本身可变。 底层const还可以用来修饰函数参数,表示函数内不能修改参数的值。 示例: int x = 10; const int* p1 = &x; // p1是底层const,指向的值不可修改 int* const p2 = &x; // p2是顶层const,指针本身不可修改 const int*...
1 执行对象拷贝时有限制,常量的底层const不能赋值给非常量的底层const。也就是说,你只要能正确区分顶层const和底层const,你就能避免这样的赋值错误。下面举一个例子: 1intnum_c =3;23constint*p_c = &num_c;//p_c为底层const的指针45//int *p_d = p_c;//错误,不能将底层const指针赋值给非底层const指...
指针const分为两种:底层const,顶层const (普通变量的const(或引用)永远是顶层const,也就是说,const int和int const本质都一样) 1)底层const(位于*左侧) 常量指针,表示指向的对象是个常量,不能修改其内容,只能更改指针指向的地址. 其实很好理解,比如 const int *p, 修饰*p是个const常量.而*p是指向对象的内容....
顶层const:const指针,则const为顶层const; 底层const:指针指向的是const变量,则const为底层const。 官方说明:在包含 const_cast 的行中,this 指针的数据类型为 const CCTest *。 const_cast 运算符会将 this 指针的数据类型更改为 CCTest *,以允许修改成员 number。 强制转换仅对其所在的语句中的其余部分持续。