@haokuixi
2014-11-25T11:07:13.000000Z
字数 817
阅读 2244
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);
}