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也需要写在*号的后面

  • 相关阅读:
    bash shell if 命令参数说明
    Linux test命令
    javascript获取事件触发源
    PHP Manual 学习
    js 控制iframe 刷新
    WP7交互特性浅析及APP设计探究
    FirstDayStart点点
    关于Safari的思考(转载)
    如何使控件背景色支持TransparentKey(at Win2k/WinXP 32bit Color Desktop)
    [Bug] VisualStyleRenderer may cause GDI leak!
  • 原文地址:https://www.cnblogs.com/syios/p/4773050.html
Copyright © 2011-2022 走看看