您的位置:首页 > 编程语言 > C语言/C++

今天复习C++的const,又学到了很多内容,总结一下[原创]

2008-01-13 23:19 423 查看
关于const的用法限制,可以用下面的一张表来表示

const int *pint cont *pint *const p
申明时是否需要初始化
是否可以指向常变量
是否可以指向变量
是否可以重新指向
(*p)++ 是否可以进行
总结const修饰的是 *p,即p指向的单元的值,那个单元的值不能改变它是否和const int *p等价?const修饰的是p内存存放的内容,这个内容不能改变,因此说它不能重新指向别的地址
下面是测试代码支持

void TestConst()

{

const int a = 100;

const int c = 200;

int b = 1;

int d = 10;

// test1

const int *p1;

p1 = &a; // OK

// (*p1)++; // ERROR

p1 = &c; // OK

p1 = &b; // OK

b++; // OK

// (*p1)++;

cout<<*p1<<endl; // 2

// test2

// int *const ssss; // ERROR

// int * const p2 = &a; // ERROR

int * const p2 = &b; // OK

// p2 = &d; // ERROR

b++;

(*p2)++; //OK

cout<<*p2<<endl;

// test3

int const *p3 = &a; // OK

// int const *p3 = &b; // OK

p3 = &b; // OK

// (*p3)++; // ERROR

// test4

int const *p4 = &b;

// (*p4)++; // ERROR

b++;

cout<<*p4<<endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: