码迷,mamicode.com
首页 > 其他好文 > 详细

const

时间:2014-09-25 10:14:58      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   strong   div   sp   

关键字const:
a.const是用来定义只读变量的,切忌它定义的是变量,不是常量,真的常量是#define的和enum。
b.在陈正冲老师的这本书中的第35页,有说编译器不为普通const只读变量分配内存空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作,使得它的效率也很高,节省空间。具体的没怎么看懂,本次学习也不打算看懂了(因为它说const修饰的全局只读变量是在静态区的,我太认同)~~~嘿嘿
c.其实const就是修饰变量,然后这个变量就不能当作左值了,当作左值,编译器就报错!!!
d. 其实const中最不好区分的知识点是,如图:
bubuko.com,布布扣
 
(可结合上文指针篇了解指针用法)
其实对于这四个情况的记忆很简单,就是看const跟谁近,是const *p   ,还是  * const  p,还是const  *  const  p,这样就很容易看出来const是修饰谁的了吧。
e.但是const修饰的变量可以通过,指针将其改变。
f.const修饰函数参数表示在函数体内不希望改变参数的值,比如说在strcmp等函数中,用的都是const  char*
g.const修饰函数返回值表示返回值不可以改变,多用于返回指针的情况:

cosnt int* func()  

  •  
  •       static int  count  =  0;  
  •       count++;  
  •       return &count;  

h.在看const修饰谁,谁不变的问题上,可以把类型去掉再看,代码如下:

struct student  

  •  
  •           
  • }*str;  
  • const str stu3;  
  • str const stu4; 

str是一个类型 ,所以在去掉类型的时候,应该都变成const stu3和const stu4了,所以说应该是stu4和stu3这个指针不能被赋值。

 
 
 
 
 
 
 
 

const

标签:style   blog   http   color   os   ar   strong   div   sp   

原文地址:http://www.cnblogs.com/Ph-one/p/3992052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!