C语言详解(5)常量
来源:互联网 发布:简述数据库设计步骤 编辑:程序博客网 时间:2024/06/07 15:52
常量
关于C语言详解系列blog的目录:http://blog.csdn.net/snake_lp/article/details/78630717
一、概述
从字面意思上,就是不会变化的量就叫做常量。常量是固定的值,在程序执行期间不会改变。常量可以是任何的基本数据类型,比如整型常量,字符型常量等等。
常量就像常规的变量,只不过常量的值在定义后不能进行修改。
二、分类
一个数值(比如:0x10),或者一个字符(‘a’),或者一个字符串都是常量。但是这样的常量没有名字,在程序设计的过程中,这一类常量就只能直接使用。如果这个常量使用频率比较大的情况下,这样的常量形式就很不方便了。
同时,常量和变量一样。可以定义,但是只能在定义的时候赋初值,之后在程序中就只能使用,不能赋值。
在赋值语句中,常量只能作为右值。所以建议在程序设计中,如果是比较语句,尽量将常量放置在表达式的左边,这样的做法是为了,当程序员误将“==”写成“=”时,在程序在编译的过程中,就能发现此错误。如果程序员误将“==”写成“=”时,此时,比较表达式的值为1,所以就会出现问题,但是编译器发现不了此问题。
三、变量的定义
变量的定义有三种方式:
1. 宏变量
使用此种方式,在编译的过程中,就是将宏定义左边的标识符直接替换为右边的常量值。比如:
#define MAX_NUM 0xFF
#define NAME “snake”
这样的定义方式可以将宏定义看做是常量,但是不是真正的常量。在编译的过程中,编译器只是简单将宏替换为实际的数据。我们在程序设计的时候,就可以将其理解为一个宏常量来使用。
2. 使用const来修饰
使用关键字const来定义常量。此种方式必须边定义边赋初值。只要定义结束,就不需要改变常量的值。比如:
const char NAME[] = “snake”;
const int MAX_NUM = 0xFF;
这样的定义方式,必须保证边定义边赋值。在C语言中其实const修饰的也是作为一个变量的,但是此变量为只读变量。就本质而言,它还是一个变量,只是此关键字指示程序,不能修改此变量的内存空间。const只对编译器有效,在程序运行时,是无效的。从本质上来看,它是一个只读变量,属于一个伪常量。在程序中,此类常量,其实是可以通过指针来修改数值的。具体在指针章节在介绍。
3. 枚举常量
枚举常量是真正意义的常量。在C语言中,enum是一种自定义的类型,默认情况下,常量在前一个常量的基础上加1。比如:
typedef enum{
CHANGAN = 0x01,
DFSK,
BYD,
BWM = 0x20,
JAC,
TOYOTA
}CAR;
常量的数值,可以随意设定。如果不进行赋值的话,就是在前一个的基础上加1.
在定义变量的时候,其名字一般为全大写。这样可以增加程序的可读性。
- C语言详解(5)常量
- 小朋友学C语言(5):常量和变量
- C语言——常量指针、指针常量以及指向常量的指针常量三者区别详解
- C语言学习5:符号常量
- C语言的数据类型(二)常量
- C语言(常量与变量)
- C语言之常量(笔记三)
- c语言常量
- C语言指针常量
- C语言定义常量
- c语言常量
- C语言常量变量
- C语言 常量
- C语言中的常量
- c语言 常量
- C语言中的常量
- C语言 常量、变量
- C语言常量
- HTML(五)
- Kotlin进阶学习
- BZOJ3781 小B的询问 莫队
- mysql数据库从一台服务器迁移到另一台服务器上
- 类型与变量
- C语言详解(5)常量
- HTML(六)
- 复数1
- 大规模字符串的匹配
- IntelliJ IDEA debug 调试打开 Evaluate Expression计算表达式窗口
- LeetCode Palindrome Number
- HTML(七)
- 最牛逼android上的图表库MpChart(二) 折线图
- MIHH-HDU-2010---2019