zoukankan      html  css  js  c++  java
  • const和指针

    char greeting[] = "Hello";
    char* p = greeting;                  //non-const pointer, non-const data
    const char* p = greeting;          //non-const pointer, const data
    char* const p = greeting;          //const pointer, non-const data
    const char* const p = greeting;  //const pointer, const data
    
    //const 虽然变化多端,但并不高深莫测。
    //如果关键字const出现在星号的左边,表示被指物是常量;
    //如果关键字const出现在星号的右边,表示指针自身是常量;
    //如果出现在星号两边,表示被指物和指针两者都是常量。
    
    
    //Effective C++
    #include <iostream>
    
    int main()
    {
        int a = 3;
        int b;
        
        //定义的const的指针(指针指向的内容不能被修改,但指针的地址可以改变)
        const int* p1;
        int const* p2;
    
        //定义const指针(由于指针本身的地址不能被修改,也就是指针指向的地址是固定的,所以必须声明的同时初始化,指针所指向地址的值是可以改变的)
        int* const p3 = &a;
    
        //指针本身的地址和它指向的内容都是不能被修改,所以声明的同时初始化
        const int* const p4 = &a;
        int const* const p5 = &b;
    
        p1 = p2 = &a;        //正确
        *p1 = *p2 = 8;        //不正确(指针指向的内容不能被修改)
    
        *p3 = 5;            //正确
        p3 = p1;            //不正确(指针本身的地址不能被修改)
    
        p4 = p5;            //不正确(指针本身的地址和它指向的内容都是不能被修改)
        *p4 = *p5;            //不正确(指针本身的地址和它指向的内容都是不能被修改)
    
        return 0;
    }
  • 相关阅读:
    P2832 行路难
    P2634 [国家集训队]聪聪可可
    模拟退火算法
    洛谷 P2986 [USACO10MAR]Great Cow Gat…(树形dp+容斥原理)
    bzoj1040: [ZJOI2008]骑士(基环树dp)
    洛谷P2014 选课(树形dp)
    洛谷P3047 [USACO12FEB]Nearby Cows(树形dp)
    bzoj1026: [SCOI2009]windy数(数位dp)
    hdu3555Bomb(数位dp)
    hdu3652B-number(数位dp)
  • 原文地址:https://www.cnblogs.com/wuzhenbo/p/2477046.html
Copyright © 2011-2022 走看看