底层const可以用来修饰指针类型,表示指针所指向的内容是不可修改的,但指针本身可变。 底层const还可以用来修饰函数参数,表示函数内不能修改参数的值。 示例: int x = 10; const int* p1 = &x; // p1是底层const,指向的值不可修改 int* const p2 = &x; // p2是顶层const,指针本身不可修改 const int*...
其实顶层const和底层const很简单,一个指针本身添加const限定符就是顶层const,而指针所指的对象添加const限定符就是底层const。 二 区分顶层const和底层const的作用 为啥非要区分顶层const和底层const呢,根据C++primer的解释,区分后有两个作用。 1 执行对象拷贝时有限制,常量的底层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。 强制转换仅对其所在的语句中的其余部分持续。
2)C和C++的const区别 1.C++和C区别 1.1C++更强调语言的实用性,所有变量都可以在需要时再定义 比如: for(inti=0;i<100;i++); 1.2C++不允许定义多个同名全局变量,而C却可以重复定义 1.3C++的register只是个兼容作用 1.4C++的所有标识符都必须有声明类型 ...