[关闭]
@haokuixi 2014-11-25T11:07:13.000000Z 字数 817 阅读 2253

const 限定修饰符

c c++


举例说明 const 修饰符的使用

使用 const 修饰普通变量

  1. const int a = 1; //定义一个 int 类型的 const 常数 a
  2. // 只能在声明的时候给 a 赋值,接下来 a 的值无法再修改

使用 const 修饰指针(一)

  1. #include <iostream>
  2. using namespace std;
  3. void main(void)
  4. {
  5. const int a=10;
  6. int b=20;
  7. const int *pi;
  8. pi=&a;
  9. cout << *pi << "|" << a <<endl;
  10. pi=&b;
  11. cout << *pi << "|" << b <<endl;
  12. cin.get();
  13. }

看下 pi 的声明 const int *pi
从右向左看,pi 是一个指针,这个指针指向一个 int 值,这个 int 值是一个常量。这就表明 pi 自身的指针值可以变,但是它所指向的 int 值是不可变的,如果代码中出现 *pi = 10 这样的赋值操作编译的时候就会报错。

使用 const 修饰指针(二)

  1. #include <iostream>
  2. using namespace std;
  3. void main(void)
  4. {
  5. int a=10;
  6. const int *const pi = &a;
  7. cout << *pi << "|" << a <<endl;
  8. cin.get();
  9. }

看下 pi 的声明 const int *const pi
从右向左看,pi 是一个常量指针,这个常量指针指向一个常量整型值。这种声明表示 pi 自身的指针值不能修改,它所指向的整型值也无法修改。pi = &b*pi = 10 都是不被允许的。

const 在实际中的使用

const int *const pi 这种指针的写法常被用于函数的形式参数,可以保证指针所指向的对象不会在函数内被改变。

  1. #include <iostream>
  2. using namespace std;
  3. void foo(const int *const pi){
  4. // do something
  5. // pi 所指向的对象无法被修改
  6. }
  7. void main(void)
  8. {
  9. int a = 10;
  10. foo(&a);
  11. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注