const用法

    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

posted @ 2015-02-28 18:05  MyBooks  阅读(201)  评论(0编辑  收藏  举报