码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中的const

时间:2015-08-12 09:01:35      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:c语言   const   

C语言的中的const,代表的含义是”不可改变的变量“,或者可以成为”伪常量“

        C++中 const,被称为”一个有类型描述的常量

	const int liv_num = 10;
	liv_num = 18;				//error   因为liv_num 被const修饰<span style="color:#ff0000;">不可被直接赋值</span>

那么,我为什么说是”伪常量“?

我们知道在c中给变量赋值,有两种方式:一种就是直接赋值;一种是间接赋值。

对于第一种方式,我们已经验证是不可以的。那么,使用间接赋值是否可以实现对liv_num的值得改变呢?

注意:一定要是.c的文件,如果使用的是.cpp的话,不会出现效果,因为c++中 const,被称为”一个有类型描述的常量“

#include <stdio.h>
#include <stdlib.h>

int main()
{
	//定义一个常量
	const int liv_num = 10;
	//liv_num = 18;				//error   因为liv_num 被const修饰不可被直接赋值

	//定义一个指针指向常量
	const int *pliv_num = &liv_num;
	
	//对指向常量的指针进行转换
	int * pNum = (int *)pliv_num;
	//进行赋值
	*pNum = 20;

	
	printf("liv_num = %d \n",  liv_num);	<span style="color:#ff0000;">//结果为:20
</span>
	system("pause");
	return 0;
}

通过以上,我们就方向 在c中 const 是 ”伪常量“,  那么也说明一个问题,const是保存在 ”栈“ 中的, 如果想验证,可以使用debug,观察内存,再此不在叙述。

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言中的const

标签:c语言   const   

原文地址:http://blog.csdn.net/obuyiseng/article/details/47438525

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