zoukankan      html  css  js  c++  java
  • C语言,const

    const意味着“只读”

    ubunto下的实验

    1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)

    2). 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

    3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

    #include <stdio.h>

    void main(void)

    {

     int const a = 10;

     int *p = (int*)&a;

     *p = 20;

     printf("&a=%d ", &a);

     printf(" p=%d ", p);

     printf(" a=%d ", a);

     printf("*p=%d ", *p);

    }

     //&a=-1081948900

     //p=-1081948900

     //a=20

     //*p=20

    1) 修饰一般常量 一般常量是指简单类型的常量

    const int a;

    int const a;

    2)修饰常指针                                                                                            const int *A  ,  int const *A; //const修饰指向的对象,A可变,A指向的对象不可变

    int *const A;                  //const修饰指针A, A不可变,A指向的对象可变

    const int *const A;            //指针A和A指向的对象都不可变

    3) 修饰函数的常参数 const修饰符也可以修饰函数的传递参数,格式如下:void Fun(const int Var); 告诉编译器Var在函数体中的无法改变,从而防止了使用者的一些无意的或错误的修改。

    #include <stdio.h>

    int const a = 10;

    void main(void)

    {

     int *p = (int*)&a;

     *p = 20;

     printf("%d ", *p);

    }

    //段错误

    #include <stdio.h>

    void main(void)

    {

     int const a = 10;

     int b = 20;

     int *p = (int*)&a;

     *p = 20;

     printf("&a=%x ", &a);

     printf("&b=%x ", &b);

     printf(" p=%x ", p);

     printf(" a=%d ", a);

     printf("*p=%d ", *p);

    }

    //&a=bfbc9c1c

    //&b=bfbc9c18

    // p=bfbc9c1c

    // a=20

    //*p=20

    //从中可以看出a的值存在栈中。

     
  • 相关阅读:
    Python设置桌面壁纸
    youtube-dl使用介绍
    Matlab pcg函数的句柄形式之参数传递
    Sublime 安装支持GBK的插件
    MarkdownPad安装
    ug7.5经常卡死的解决方法
    HM NIS edit打包软件
    UG工程制图
    egg框架中是如何使用MD5加密的 实现用户修改密码 小编在这里献丑了。。。。。
    今天遇到了vue项目中使用Iconfont图标 ,感觉挺实用的 随手记录下。只需简单的6步就可以实现
  • 原文地址:https://www.cnblogs.com/mylinux/p/4667770.html
Copyright © 2011-2022 走看看