zoukankan      html  css  js  c++  java
  • c/c++ const

    1
    2
    3
    4
    5
    6
    7
    8
      /*
    一、指针指向的变量的值不能变,指向可变

    int x = 1;
    int y = 2;

    const int* px = &x;
    int const* px = &x;
       //这两句表达式一样效果

    px = &y;              //正确,允许改变指向
    *px = 3;              //错误,不允许改变指针指向的变量的值
    */



    /*
    二、指针指向的变量的值可以改变,指向不可变
      
    int x = 1;
    int y = 2;

    int* const px = &x;


    px = &y;              //错误,不允许改变指针指向
    *px = 3;              //正确,允许改变指针指向的变量的值
    */



    /*
    三、指针指向的变量的值不可变,指向不可变
      
    int x = 1;
    int y = 2;

    const int* const px = &x;
    int const* const px = &x;

    px = &y;              //错误,不允许改变指针指向
    *px = 3;              //错误,不允许改变指针指向的变量的值
    */


    /*
    四、补充
    1、const在*的左边,则指针指向的变量的值不可变;在*的右边,则指针的指向不可变。
    简记“左定值,右定向”。

    2、以下编译出错(gcc 4.4.5)
    int x = 1;
    (int*) const px = &x;

    int x = 1;
    const (int*) px = &x;

    3、
    在c中,对于const定义的指针,不赋初值编译不报错;
    int* const px;等不会报错;

    但是,在C++中,上面二、三两种情况必须赋初值,一可以不赋初值;
    即int* const px;const int* const px;报错,const int* px;不报错,
    必须初始化指针的指向int* const px = &x;const int* const px;

    强烈建议在初始时说明指针的指向,防止出现野指针。
    */


  • 相关阅读:
    分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
    java 对小数位的处理 BigDecimal DecimalFormat 常用操作 浅解
    事务 锁 悲观锁 乐观锁 概念 应用场景 使用方式 小记
    多项目使用同一个zookeeper,遇到的坑
    java线程关键字之volatile
    数据库事务
    Web.xml配置详解之context-param
    WINDOWS上KAFKA运行环境安装
    hibernate 之session学习
    windows 安装hadoop
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2683081.html
Copyright © 2011-2022 走看看