(1)指向常量的指针(指针指向一个不可变量) 指针在指向有一个常量后,不能通过指针修改这个常量,但是可以指向一个新的常量,例如: Const char *pc=”ABCD”; Pc[3]=’a’;不合法,企图修改原来指向的常量 Pc=“WERT”;合法指向另外一个常量 (2)常指针 要把指针变量中的值(也就是地址)声明为常量,采用以下语法: <类那些>*const<指针名>[=<初值>;] 这样定义的指针变量中存放的指针是个常量,称为常指针。定义后,该指针指向固定的内存单元,不能再指向其他内存单元,通过它可以修改所指单元里存放的内容。例如: Char *const pc=”ABCD”; Pc[3]=’a’;合法,指针指向的对象可以修改 Pc=”QWER”;不可以,指针的指向不可以修改 (3)指向常量的常指针 指针变量中存放的指针本身和指针所指向的对象都是不可以改变的。 例如: Const char *const pc=”ASDF”; Pc[3]=’a’;不合法,不能改变指针所指对象的值 Pc=”QWER”;不合法,不能改变指针的指向 三、Const说明函数参数和返回值 用const限定函数参数和返回值,是const最重要的用法。 用const修饰函数参数意味着传过来的实参在函数中是不能被修改的。 一般情况下不需要,但是在用指针和引用传值的场合,为避免实参被修改,就用const修饰,更安全。 修饰函数的返回值,意味着该返回值不能被修改。 如果传值并返回地址,const将保证该地址上的内容不会被改变。 这就意味着该函数不能作为左值使用,在这种情况下,const通常也是与引用和指针一起使用的。 四、类中的const 1. 常成员的函数 2. 常数据成员 3. 常对象 百度小贴:class A { Bool fa(const A&a); const A&fb(int i); void fc() const; }1. Bool fa(const A& a); 这里的const是说明变量a在函数Bool fa(const A& a)内不能被修改。 2. const A& fb(int i); 这里是说函数const A& fb(int i) 的返回值不能被修改 3. void fc() const; 这个是说函数void fc()其内部不能修改变量。
const用法荟萃(二)
最新推荐文章于 2024-09-14 11:39:03 发布