zoukankan      html  css  js  c++  java
  • 再学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

  • 相关阅读:
    dubbo服务配置
    架构基本概念和架构本质
    最大子数组和问题
    struts2简单登陆页面
    四则运算随机出题
    省赛训练赛赛题(简单题)
    Ubuntu虚拟机安装,vritualbox虚拟机软件的使用
    Rational Rose 2007破解版
    netbeans出现的错误
    快速幂
  • 原文地址:https://www.cnblogs.com/scutwang/p/3650192.html
Copyright © 2011-2022 走看看