zoukankan      html  css  js  c++  java
  • C++ 学习-const&引用

    const:

    1、const关键字(常量必须进行初始化)

         const int MAX_VAL = 23;

         const int MIN_VAL=0;

    2、定义指向常量的指针(常量指针指向的内容是不可修改的)

         int a=10;

         const int *p=&a;

    3、定义指针常量(因为指针常量为一个常量,所以必须给他赋初值。虽然指针常量的值不能变,但是它指向的内容可改变)

         int b = 10;

         int  *const pb=&b;

    4、定义指向常量的常量指针(指向的对象不可改变)

         const int a = 10;

         const *const pb=&a;

    5、const vs #define:(尽量以const代替的define)

    (1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。

    引用:(引用的时候必须进行初始化,引用跟某一变量绑定之后不能再绑定其他的变量)(变量才能使用引用)

    1、引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。以引用返回函数值,定义函数时需要在函数名前加& 用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本

    int a;

    int &refa=a;//引用

    2、引用VS指针

    1) 指针是一个实体,而引用仅是个别名;

    2)引用使用时无需解引用(*),指针需要解引用

    3)引用只能在定义时被初始化一次,之后不可变;指针可变

    4)引用不能为空,指针可以为空

  • 相关阅读:
    封装TensorFlow神经网络
    android对话框显示异常报错:You need to use a Theme.AppCompat theme (or descendant) with this activity.
    管道过滤器模式
    架构设计模式之管道——过滤器模式
    SQL SERVER 数据库邮件配置
    浅谈数据仓库的基本架构(转)
    Spark On YARN内存分配
    Tomcat 9.0安装配置
    Spark on Yarn遇到的几个问题
    yarn资源调度(网络搜集)
  • 原文地址:https://www.cnblogs.com/lyp1010/p/11683634.html
Copyright © 2011-2022 走看看