• 再学C/C++ 之 指针常量 和 常量指针


    (1)指针常量,将指针的指向当成常量。即指针变量的值只能在定义的时候初始化,定义后不能修改,也就是说不能改变指针变量的指向。但是不影响所指对象的访问特征。其定义形式为:

    类型 * const 指针
    //类型是该指针所指对象的类型,*为指针类型说明符。

    实例1:

    int var1 = 100;
        int var2 = 200;
    
        //初始化指针常量,
        int *const const_P1 = &var1;
        //指针常量值定义指针的指向不能修改,
        //如,这里将const_P1指向var2的地址,就错了,
            //下面的语句会报错
        const_P1 = &var2;
        //但是,指针常量不影响指针所指对象的访问特征,
        //即,这里可以修改const_P1的对象的值
        *const_P1 = 200;
    
        //输出200;
        cout << *const_P1 << endl;
        //输出200;
        cout << var1 << endl;

    (2)常量指针,又称为指向常量的指针,意思是,将指针所指的对象当成一个常量,即其访问特征为常量,但是,指针的指向可变。定义的形式:

    类型 const * 指针
    或者
    const 类型 * 指针
    //类型是该指针所指对象的类型,*为指针类型说明符。

    实例2:

        int var1 = 100;
        const int var2 = 200;
    
        const int * P1;
        const int * P2;
        P1 = &var1;
        //上面的语句将P1指向var2,就是将其访问特性设置为常量,即不可修改,
        //所以下面的语句会报错。
        *P1 = 1000;
        //常量指针不影响指针的指向,所以这里可以重新指向var2
        P1 = &var2;

    注意:a、常量指针,无论所指的对象是否为常量,均不能通过*p修改。

       b、为了保证标识常量的只读性,常量的地址只能赋给常量指针(即指向常量的指针)。

    (3)总结的来说,指针常量,就是把指针当成常量(指向不可变);常量指针,就是把所指对象当成常量。

    如果读者,对此还是记不住的话,可以参考这篇文章:http://www.cnblogs.com/jonnyyu/archive/2005/06/19/89766.html

  • 相关阅读:
    StackStorm简介及其部署
    Nginx系列(十二)——性能调整
    Nginx系列(十一)——通过日志进行故障排查
    Nginx系列(十)——可用性监控进阶
    Nginx系列(九)——容器/微服务
    Nginx系列(八)——数字媒体流
    Nginx系列(七)——HTTP/2
    Nginx系列(六)——安全控制
    Nginx系列(五)——认证
    Nginx系列(四)——配置文件自动化管理
  • 原文地址:https://www.cnblogs.com/scutwang/p/3650192.html
Copyright © 2020-2023  润新知