今天复习C++的const,又学到了很多内容,总结一下[原创]
2008-01-13 23:19
423 查看
关于const的用法限制,可以用下面的一张表来表示
下面是测试代码支持
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;
}
const int *p | int cont *p | int *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;
}
相关文章推荐
- C++中const关键字的使用方法,烦透了一遍一遍的搜,总结一下,加深印象!!!
- 今天来总结一下在学习java一些重要内容(基本)
- 关于I2C驱动系统,将今天总结的内容简单总结一下
- 截至复习今天所学到的内容
- [原创] 基础中的基础(二):C/C++ 中 const 修饰符用法总结
- 总结一下今天学的c++
- 总结一下今天回顾的JavaIO的一些基本内容
- 简单记录一下最近学到的c++内容
- C++ const 的全面总结
- C++中const用法总结
- C++ reinterpret_cast,const_cast等 显式类型转换总结
- 今天总结一下我对Fragment的理解(碎片的入栈与出栈,碎片的嵌套)
- C++中const用法总结
- 关于C++ const 的全面总结
- 关于C++ const 的全面总结
- 常考的开发笔试题 c++里有关指针的内容中,const的位置对指针含义的影响?
- 2012关于C++ const 的全面总结
- C++复习要点总结之十——多态(一)
- 关于C++中const的一些总结
- C++ const 的全面总结