标签:
int const i =5; //两者等价 const int i =5; int a = 5; int b = 6; int c = 7; int const *p = &a; //等价 const int *p = &a; 指向常整型数的指针 // *p = 8; //此处会报错,指向地址中的值不能改变 p = &b; //指向的地址可以改变 int * const q = &b; //指向整型 数的常指针 *q = 9; //指向地址中的值是可以改变 // q = &c; //此处会报错,指向的地址不能改变 int const * const fp = &c; //指向常整型数的常指针 // fp = &b; //此处报错,指向的地址不能改变 // *fp =10; //此处报错,指向的地址值中的值不能改变
注意:网上有的题目是int const * a const; 其实是错误的写法,VC6.0编译是不通过的,
正确写法是int const * const a ;
摘自网上的“我 只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有 用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你 从没有读到那篇文章,只要能说出const意味着"只读"就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。”
所以以后注意这么回答了,“只读”,打个双引号。
1) 关键字const的 作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾, 你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
3) 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。
http://blog.chinaunix.net/uid-26923078-id-3202384.html
标签:
原文地址:http://www.cnblogs.com/wen2376/p/4306025.html