您的位置:首页 > 编程语言 > C语言/C++

C语言详解(5)常量

2017-12-01 22:48 435 查看
常量

 关于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.

 

 在定义变量的时候,其名字一般为全大写。这样可以增加程序的可读性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息