首页 > 其他分享 >浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)

时间:2022-10-18 22:32:04浏览次数:47  
标签:const 常量 定义 枚举 浅谈 变量 define

一.常量

不会变的量就是常量,比如性别,血型等;

二.常量的分类

1.字面常量
2.const修饰的常变量
3.#define定义的标识符常量
4.枚举常量

1.字面常量

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_数组

2.const修饰的常变量


        在这里就需要用到const这一代码 ,先举个例子来看看边量和常变量的区别:

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_数组_02

 定义一个变量a为12,在这之后将a重新赋值为14,我们可以看到a被成功赋值,那我们再加上const再试试

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_枚举类型_03

上面报错,显示a出现了问题,因为加了const的原因,变量a已经变成了常变量a(意味着a已经有了常量的属性)而常量是指不能再改变的量,因此当我想把a改变为14时会报错,这里需要注意,常变量只是让变量有了常量不能被修改的属性,但它的本质任然是一个变量,再举个列子让大家理解

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_数组_04

这里大家需要知道一个知识点数组只能放常量,所以我们可以看到当变量n放进数组a中运行时就会出现报错,那我们加上const再试试

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_数组_05

我们发现哪怕加上const,让n变成常变量代码仍然报错 ,这就说明const只是让变量变成常变量有了常量不能被修改的属性,但它的本质仍然是一个变量。

​3.#define定义的标识符常量

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_#define_06

 这里我用#define定义n的值为12,在这里需要注意一下定义的格式(不需要等号和分号),当我们直接printf和用数组表示时代码能正常运行,一般当我们需要一个量在整个程序中保持不变或者在程序中我们希望只改变这一个数值而不会影响整个程序,我们就可以用这个进行定义,比如再用圆周率π时我们就可以定义他为3.14,在后面运用公式时就可以直接引用,而如果我们想让数据更精确,就只需要在#define这一行将3.14改为3.1415926····即可

4.枚举常量

 枚举就是一一列举,意思是说能够一一列举完的量。枚举的关键——enum

比如:

性别:男、女                    三原色:红、黄、蓝                  月份:一月·········十二月  等等

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_数组_07

​在这里还需要注意一点,枚举类型创建的类型是常量可以修改,但枚举变量不可以改,比如:

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_枚举类型_08

​上图中的a就是枚举类型创建的变量,它是可以修改的,但是我们一旦修改male或者female试试

浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量)_枚举类型_09

​ 这就说明:

枚举常量不可以改
枚举类型创建的类型是变量可以修改

枚举常量我一般很少用到这个,也不太清楚这种方法什么情况下会被使用,如果有会的大佬可以在评论区解释一下

标签:const,常量,定义,枚举,浅谈,变量,define
From: https://blog.51cto.com/u_15832450/5768298

相关文章

  • IDEA里编译报错提示常量字符串过长
    问题从数据库查出某字段(text类型)数据,通过编写程序解析转换做处理,程序编写完成编译时报错:Error:java:常量字符串过长解决查询资料发现,原因是javac在编译期间,常量字......
  • @PostConstruct详解
    定义:@PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。从JavaEE5规范开始,Servl......
  • 浅谈区块链应用中的密码学原理
    你印象中的区块链是什么?比特币、以太坊等加密货币?这样的理解是片面的,可以这么说比特币是区块链最成功的应用。当然基于区块链的去中心化共识的应用层出不穷,下面将举几个应......
  • 那些令人“头疼”的常量们
    C语言的数据类型分为基本类型,结构类型,指针类型和空类型四个大的部分。它们决定了数据的取值范围、占用类存的字节数和所能进行的操作。基本类型还可以分解成其他类型,如:(整形......
  • 【ES6】let、const关键字和解构赋值
    ......
  • Java基础篇-----数据类型,类型转换,常量变量
    Java注释:首先成功写好代码第一步需要写好注释书写注释是一个很好的习惯平日写代码一定要注意规范 常见注释 单行注释----//   ......
  • let、const、var的区别
    var是ES5提出的,let和const是ES6提出的。const声明的是常量,必须赋值1)一旦声明必须赋值,不能使用null占位。2)声明后不能再修改3)如果声明的是复合类型数据,可以修改其属......
  • Function parameters(参数) treated as constant
    constwarn=@import("std").debug.warn;fnnormal(x:i32)void{x+=1;warn("{}\n",x);}pubfnmain()void{varz:i32=12;normal(z);......
  • 浅谈Splay
    splay:伸展树,通过一系列的旋转维护平衡性。注意,splay不一定是严格的平衡。故操作大部分均摊时间复杂度\(O(logn)\)分3种情况讨论旋转:\(1.\)Zig\(or\)Zag\(2.\)Zi......
  • 浅谈IT系统性能优化
    一个刚上线的IT系统,往往负载压力不大,所以不会存在什么性能问题。这时,人们大多只关心系统的功能性和用户体验。但是,随着时间推移,用户量和数据量都比刚上线的时候要多很多,高......