C语言中的常量

简介: C语言中的常量

一、什么是常量

       在生活中,我们常用的量分为两种,一个是变量,一个是常量;

       变量即为可变的量

       同理,常量即为不可变化的量;在数学中,常量是一个反应一个实物相对静止状态的量;

       在c语言中也是如此,常量在整个程序的运行过程中不可被改变。

       在程序中恒定不变的量即为常量。

二、常量可以分为几类

       字面常量

       const修饰的常变量

       #define定义的标志符常量

       枚举常量

字面常量:

       字面常量就是它字面上就是一个具体的数据值。

       字面常量也有分为整型字面常量、浮点型常量、字符型常量等等。

int main()
{
100;
'w';
3.14159;
6;
return 0 ;
}

       该代码中 100 ,6 为整型字面常量;'w' 为字符型字面常量 ;3.14159 为浮点型字面常量;


const修饰的常变量:

int main()
{
    int i = 100;  //此处i为变量
    i = 20;       //i可以重新赋值
//------------------------------
const int a  =100;//此时a被const修饰,具有常属性
    a = 20;       //a具有常属性,不能被改变
                  //所以在运行下面的代码时程序会报错
return 0;
}

       在下面的代码中,a为变量,但是在const修饰之后,具有常属性;所以a不能被重新赋值,即a不能被改变,称为const修饰的常变量

            ——  但是为什么是常变量而不是常量呢??

int main()
{
const int pu = 0;
    int arr[pu] = {};
return 0 ;
}

带着疑惑我们来看,当运行这段代码时,程序会报错;

在不支持C99的编译器中,数组只能使用常量,且不能使用变量;

(在支持C99的编译器引入了“变长数组”的概念,即变长数组的大小是可以使用变量来指定的,但是数据不能初始化)

从这里就可以得知,pu被const修饰之后仍是变量,只是具有了常属性,

故称为“const修饰的常变量”。


#define定义的标识符常量

       在c语言中,可以用#define来定义一个标识符用来表示一个常量

#define MA_X 1000         //定义整型常量MA_X,且数值为1000
int main()
{
#define SUG_EST "often"   //同理,SUG_EST也为常量,值为"often"
#define PI 3.14159        //......
return 0 ;
}

在上列代码中,MA_X ,SUG_EST,PI都为一个标识符,用来表示一个常量。

凡是以#开头的,都被称为预处理指令,也被称为预编译;预编译与编译不同,预编译是编译前的处理。

#define定义的标识符常量后不加 ' ; '  


枚举常量

       在中文意思中,枚举的意思为一一列举

       在C语言中也是一样,枚举常量即为一一列举的常量。在生活中有许多有意义的数据,例如一个人的性别,有男,有女,或者保密;一周有七天,周一、周二......周日等等。

而我们要在c语言中表示这些特殊意义的数据的时候,就可以用到枚举常量(ENUM)

enum Sex
{
    MALE,
    FEMALE, //每个数据中间应用,隔开
    SECRET
};    //此处的分号不可缺少

在这里我们涉及到一个新的关键词,叫做 enum -- 枚举数据类型

在上段代码中 “Sex” 即为所定义枚举类型的名字

MALE , FEMALE , SECRET即为这个枚举类型的未来可能取值

当以整型类型打印这个枚举常量的时候,打印出来的数据为0,1,2;

枚举常量的初始默认值从0开始

同时,也可以给枚举常量赋初始默认值

再给枚举常量赋初始默认值后,该枚举常量的默认值会从所赋的值开始算。

枚举常量为常量,所以也可以将它的值赋给一个变量

enum Sex
{
MALE = 5,
FEMALE,
SERCRT
}
int main()
{
enum Sex sex = MALE; //sex即为创建的变量
return 0 ;
}

       该处若是打印sex,打印结果为5;

相关文章
|
6月前
|
程序员 编译器 C语言
C语言的程序常量
C语言的程序常量
38 0
|
1月前
|
存储 C语言
初识C语言:常量与变量中寻找数据类型
初识C语言:常量与变量中寻找数据类型
|
2月前
|
存储 C语言
【C语言基础考研向】02 数据类型-常量-变量
本文介绍了编程中的基本概念,包括数据类型分类、常量与变量的定义及使用。首先概述了四大类数据类型:基本类型(整型、浮点、字符型)、构造类型(数组、结构体)、指针类型和空类型。接着阐述了常量与变量的区别及命名规则,并详细说明了整型、浮点型和字符型数据的特点与应用。最后总结了常见的易错点,如字符串与字符常量的区别及浮点数的默认输出格式。
|
2月前
|
安全 编译器 C语言
C语言常量的定义与使用的注意点
在 C 语言中,常量是在程序运行期间值不变的量,通过字面值、`#define` 或 `const` 关键字定义。字面常量直接在代码中表示固定值,如整数 `100`、浮点数 `3.14`、字符 `'A'` 和字符串 `"Hello, World!"`;`#define` 用于定义宏,如 `#define PI 3.14159`;`const` 则定义不可变变量,如 `const int daysInWeek = 7`。常量可用于数组大小、循环边界等场景,并能提升代码的可读性和可维护性。使用时需注意作用域、类型安全和命名,避免直接使用数字(魔法数字)。
|
2月前
|
C语言
C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解
本文详细介绍了C语言中的数据与数据类型,包括常量、变量、表达式和函数等内容。常量分为整型、实型、字符型和字符串常量,其中整型常量有十进制、八进制和十六进制三种形式;实型常量包括小数和指数形式;字符型常量涵盖常规字符、转义字符及八进制、十六进制形式;字符串常量由双引号括起。变量遵循先定义后使用的规则,并需遵守命名规范。函数分为标准函数和自定义函数,如`sqrt()`和`abs()`。表达式涉及算术、赋值、自增自减和逗号运算符等,需注意运算符的优先级和结合性。文章还介绍了强制类型转换及隐式转换的概念。
|
5月前
|
程序员 C语言
C语言中的宏定义:从常量到高级技巧
C语言中的宏定义:从常量到高级技巧
280 1
|
4月前
|
C语言
C语言2 常量
C语言2 常量
20 0
|
4月前
|
移动开发 C语言
C语言13-----输出常量的两个小扩展
C语言13-----输出常量的两个小扩展
|
4月前
|
C语言
C语言12----输出常量
C语言12----输出常量
|
4月前
|
C语言
C语言11-----实型常量细节补充
C语言11-----实型常量细节补充