C语言中的常量-创新互联

目录

10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有彭水苗族土家族免费网站建设让你可以放心的选择与我们合作。

一、什么是常量

二、常量可以分为几类

字面常量:

const修饰的常变量:

#define定义的标识符常量

枚举常量


一、什么是常量

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

  变量即为可变的量

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

在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;

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:C语言中的常量-创新互联
网址分享:http://scjbc.cn/article/dgsedd.html

其他资讯