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

const

时间:2016-06-01 01:38:12      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

 

const变量,可以通过指针修改

const的本质是伪常量,无法用于数组初始化,以及全局变量初始化。

原因:const仅仅限定变量一旦初始化后无法再直接赋值。

const只是限定一个变量无法直接赋值,但是可以间接赋值。

但是还是有可能被意外修改,例如间接赋值,并不是完全只读,所以并非真正意义的常量。

例如局部const变量在栈区,而不在静态区(静态区会一直存在)。

也不在代码区,因为代码区会禁止修改,代码区间接赋值不可能成功。

 

 1 #define _CRT_SECURE_NO_WARNINGS
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 
 6 main()
 7 {
 8     const int num = 10;
 9 
10     printf("%d\n", num);
11 
12     const int *p = &num;//指向常量的指针,定义一个指针指向一个常量,存储num的地址
13 
14     int *pv = (int *)p;//对指向常量的指针进行强制转换
15 
16     *pv = 8;//对指针指向内容进行赋值
17 
18     printf("%d\n", num);//间接的改变了一个常量
19 
20     system("pause");
21 }

 

const

标签:

原文地址:http://www.cnblogs.com/denggelin/p/5548247.html

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