C语言常见储存常量的方法(define、const)

我们在使用c语言编写程序的时候经常会对常量进行存储,以下是常用的方法:

1.使用宏定义define 储存常量,方法如下:

define PI 3.14

该命令允许把PI指定成3.14这个常量。在定义了宏之后,无论宏名称出现在源代码的何处,预处理器都会把它用定义时指定的文本替换掉。使用宏定义的好处是可以统一管理变量,需要更改时只要修改宏定义即可,非常方便。但是使用宏的编译是发生在预编译的阶段的,预编译并不进行类型的检测。比如说,我们希望PI的值是3.14的浮点型,但是如果我们手误把它写成"hello world"字符串类型,它也是不会提示警告和错误的,这样程序安全性还不够高;那有什么方法可以尽量避免这总问题呢?竟然我们希望编译器进行类型检测,那我们首先就可以想到用常见的定义变量来储存常量。方法如下:

2.使用变量来储存常量

float pi=3.14;

 使用变量储存常量是常见方式,好处是编译器会在编译的过程中检测变量的类型,避免上述的问题发生。但是这种方法有个很明显的缺点,那就是变量是可以改变的,在程序的运行中可能会遇到不易发现的bug或者自己的纰漏,造成程序运行的过程中,值发生变化,使得程序的运行结果出现了误差。那又如何解决这个问题呢?

3.使用c语言中提供了关键字const来解决:

const float pi=3.14;

首先我们来了解一下关键字const的作用:

如果一个变量被const修饰,那么它的值就不能再被改变,可以保护被修饰的东西,防止意外修改,增强程序的安全性。

在使用了const修饰后,如果变量被改变,编译器会产生错误提示,如:

#include <stdio.h>
int main(void)
{
	const float pi=3.14;
	pi=3.15;
	return 0;
}

[错误] assignment of read-only variable 'pi'

其实被const修饰的变量也是可以改变的,方法就是使用指针间接改变,方法如下:

#include <stdio.h>
int main(void)
{
	const float pi=3.14;
	const float *p=&pi;
	*p=3.15;
	return 0;
}

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值