C语言的常量和变量

基本数据类型量,按照取值能否改变分为常量和变量。

一、常量
常量是程序执行过程中,其值不发生改变的量。
在程序中,常量可以不经说明直接引用。

1.常量定义方式
(1)使用 const定义:const 数据类型 常量名
const定义的是值不允许改变的常变量。
C语言的常量和变量
(2)宏定义:#define 标识符 常量值
#define是一条预处理命令,称为宏定义命令。一经定义,以后在程序中需要用到该常量的地方,均用标识符代替。一般标识符用大写。
C语言的常量和变量
const定义和宏定义比较:

(1)const用于类成员变量,一经定义不可修改。define用于全局常量,不可用于类成员变量的定义。

(2)const可以在类中使用,而define不能。

(3)const定义的常量有数据类型,而宏定义的常量没有数据类型。因此编译器可以对const常量进行类型安全检查,但对宏常量就只进行字符替换,没有类型安全检查,并且在字符替换可能会导致边际效应。

什么是边际效应呢?下面举个简单的例子。
C语言的常量和变量
C语言的常量和变量
这段程序用define定义了一个常量 N ,值为 5+2 ,按理说 num 的计算结果应该为3(int 取整数),但在计算的时候,num的值却是 6,因为它先计算了 2除以2,这就是边际效应。

而 const 不会出现这样的错误。
C语言的常量和变量
C语言的常量和变量

2.常量的类型
(1)整型常量:int,long,short,unsigned int
备注:int的默认类型是有符号的
(2)实型常量:float,double
(3)字符常量:char,用单引号括起来的一个字符
(4)字符串常量:用双引号括起来的字符
(5)符号常量

二、变量
变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这个数据就是变量的值。在程序运行期间,变量值是可以改变的。
C语言的常量和变量

1.定义方法
类型 变量名,变量名
例如:int a , b ;

2.变量赋初值
(1)C语言允许在定义变量时使变量初始化
C语言的常量和变量
(2)可以一部分初始化
C语言的常量和变量
(3)对多个变量赋同一个初值
C语言的常量和变量
(4)未初始化的变量先申请内存,但存储单元内的值是随机数,然后再赋值;而初始化没有生成随机数的过程。