“const” 的运用(c语言)

const  :定义常变量,将变量变为“只读”——(只能读取、使用数据,不能修改数据);

 定义:

const   变量类型   变量名 = 常量 ;

 作用:

(1)便于检查,消除无意识修改数据的隐患,增强程序健壮性。

如:const int SIZE=10;

     SIZE=20;//编译器就会报错!

(2)避免意义模糊的数字出现,同时可以很方便地对参数调整和修改。同宏定义一样,可以做到“不变一直保持,一 变则都变”。

如:(1)中,想修改SIZE的值,就要写成:const int SIZE=20;

(3)(与宏定义比较)可以节省节省空间,避免不必要的内存分配。

如: #define Max1 100 //常量宏

const double Max2=100;    //此时并未将Max2放入RAM中

double de1=Max1;    //编译期间进行宏替换,分配内存

double co1=Max2;   //此时为Pi分配内存,以后不再分配

double de2=Max1;   //在进行宏替换,再次分配内存

double co2=Max2;   //没有分配内存

用法:

(1)数据类型(int、char....)对于const而言是透明的。(const修饰它的直接右边,不能做左值)

     如:(const int SIZE =10;)等同于(int const SIZE =10;)

    (const int * p=&a;)等同于(int const *p=&a;)

(2)const 与指针。(权限可以同等或者缩小传递,但不能放大传递)
      如:int a=10;
  1. const int *p1=&a;    //只读*p1,将p1的解引用“锁死”
  2. int const *p2=&a;    //只读*p2,将p2的解引用“锁死”(等同于1.)
  3. int *const p3=&a;   //只读p3,将p3的值“锁死”
  4. const int const *p4=&a; // 只读*p4,将p4的解引用“锁死”(等同1.2.)
  5. const int * const p5=&a;   //只读p5和*p5,将p5的值、p5的解引用都“锁死”
  6. int const *const p6=&a;   //只读p6和*p6,将p6的值、p6的解引用都“锁死”(等同5.)



阅读更多
个人分类: c语言
想对作者说点什么? 我来说一句

const工作方式及运用

2011年03月14日 98KB 下载

没有更多推荐了,返回首页

不良信息举报

“const” 的运用(c语言)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭