@haokuixi
2014-11-25T03:07:13.000000Z
字数 817
阅读 2534
c c++
举例说明 const 修饰符的使用
const int a = 1; //定义一个 int 类型的 const 常数 a// 只能在声明的时候给 a 赋值,接下来 a 的值无法再修改
#include <iostream>using namespace std;void main(void){const int a=10;int b=20;const int *pi;pi=&a;cout << *pi << "|" << a <<endl;pi=&b;cout << *pi << "|" << b <<endl;cin.get();}
看下 pi 的声明 const int *pi
从右向左看,pi 是一个指针,这个指针指向一个 int 值,这个 int 值是一个常量。这就表明 pi 自身的指针值可以变,但是它所指向的 int 值是不可变的,如果代码中出现 *pi = 10 这样的赋值操作编译的时候就会报错。
#include <iostream>using namespace std;void main(void){int a=10;const int *const pi = &a;cout << *pi << "|" << a <<endl;cin.get();}
看下 pi 的声明 const int *const pi
从右向左看,pi 是一个常量指针,这个常量指针指向一个常量整型值。这种声明表示 pi 自身的指针值不能修改,它所指向的整型值也无法修改。pi = &b 或 *pi = 10 都是不被允许的。
const int *const pi 这种指针的写法常被用于函数的形式参数,可以保证指针所指向的对象不会在函数内被改变。
#include <iostream>using namespace std;void foo(const int *const pi){// do something// pi 所指向的对象无法被修改}void main(void){int a = 10;foo(&a);}
