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

2017.2.15

时间:2017-02-15 21:57:22      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:编译   错误   code   err   class   常量   erro   gcc编译   意义   

1.const用法:

       1.c与c++ const对比

          c中的const量,只是一个可读的变量,可以通过强制转换其指针来改变值。

。 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     const int c=0;
 6     int * p=(int*)(&c);
 7     *p=1;
 8     printf("%d\n",c);       //用gcc编译c=1,用g++编译c=0
 9 }                              

        c中const量不能用于数组

1 const int d=82 int len[d];           //error

 

          

       2. 指向常量的指针和常指针

1 const int *pointer 
2 int *const pointer   

           c++强类型转换一般约束只会增强,不会削弱。

           比如:

1 int a=0;
2 const int b=0;
3 const int *pointer(&a)   //正确
4 const int *pointer(&b)   //正确
5 int *cosnt pointer(&a)   //正确
6 int *cosnt pointer(&b)   //错误

           3,4两行无论是const还是非const变量的地址,对于指向常量的指针都无关紧要。

           而第6行,把const变量的地址赋给常指针(可以修改值),类型转换某种意义上是削弱了,不能通过const变量的地址来修改值。

      

 

  

 

    

 

2017.2.15

标签:编译   错误   code   err   class   常量   erro   gcc编译   意义   

原文地址:http://www.cnblogs.com/acliang/p/6403388.html

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