zoukankan      html  css  js  c++  java
  • Const的用法

    宏和const的区别:

    1.宏执行的是替换操作,这也就意味着会在内存中开辟多个临时空间 这样显然不是很好

    2.宏不可以修改

    const :

    用const修饰的变量 为常量 不能修改,在内存中只有一份内存

    用const修饰的全局变量 为全局常量

    const修饰指针变量:

    const int *p = NULL;

    int const *p = NULL;

    上面两个都表示*p不能该 p可以改  含义是一样的

    int *const p = NULL;

    上面的语句表示p这个指针指向不可以改 但是*p 可以改 也就是指向的内容可以改

    所有得出结论:

    const右面如果是*p:表示*p不能改,p可以改

    const右边如果是p :表示p不能改  但是*p可以改

    这个有什么用呢?

    这个应用场合 一般在 我们调用一个函数,传入参数 但是我们不希望我们传入的参数的值或者指向被改变的时候 那么我们就可以采取上面的做法了 直接定义为下面这样:

    void test(const int *p)

    {

      //在这里面只能拿到值 但是不可以修改值

    }

    int main(){

      int num = 10;

      test(&num);

    }

    其他使用方法:

    如果用const 修饰基本数据类型有以下两种方式:

    const int age = 10;

    int const age = 10;

    如果用const修饰基本数据类型需要放在*号的后面:

    NSString *const name = @"jack";

    引用(extern)也是一样 const也需要写在*号的后面

  • 相关阅读:
    UVa 11300 Spreading the Wealth(有钱同使)
    hihoCoder 1385 : A Simple Job(简单工作)
    hihoCoder 1383 : The Book List(书目表)
    HDU 5724 Chess(国际象棋)
    Sobytiynyy Proyekt Casino Gym
    Course recommendation Gym
    Poor Folk Gym
    How far away? (HDU
    BAPC 2016 ----Brexit (BFS + vector)
    Simpsons’ Hidden Talents(扩展KMP)
  • 原文地址:https://www.cnblogs.com/syios/p/4773050.html
Copyright © 2011-2022 走看看