C语言中的常量详解

目录
  • C语言中的常量
    • 字面常量
    • #define定义的标识符常量
    • 枚举常量

C语言中的常量

C编程中的常量是一些固定的值,它在整个程序运行过程中无法被改变。

字面常量

字面常量是直接写出的固定值,它包含C语言中可用的数据类型,可分为整型常量,字符常量等。如:9.9,“hello”等就属于这一类常量。

##const修饰的常变量

有的时候我们希望定义这么一种变量:值不能被修改,在整个作用域中都维持原值。为了满足用户需求,C语言标准提供了const关键字。在定义变量的同时,在变量名之前加上const修饰。如下所示:

int main()
{
    const int a = 1;   // const修饰的常变量
}
  • const修饰的常变量,本质上是变量。
  • 但具有常属性,不能被修改。
int main()
{
    const int a = 1;
    a = 2;         // 错误
    const int n = 20;
    int arr[n] = { 0 };   //n本质上是变量
}

关于上述n的使用,需要说明的是:在C99标准之前,数组的大小只能是常量修饰,不支持变长数组。

#define定义的标识符常量

C语言提供了***#define***命令定义标识符常量,该标识符常量在程序中是个定值,通常用于代表数组容量或涉及数学的常量等。如:

#define PI 3.14159
#define SIZE 10    // 此处SIZE代表数组元素个数
int main()
{
    int arr[SIZE]={0};
    return 0;
}

如需修改数组大小,只需将SIZE所代表的值修改即可,十分方便。

枚举常量

日常生活中有一些代表实际意义的常量,有这么一个特点:数值较小且为非负整数。如一周有7天等。C语言提供了一种枚举(Enum)类型,能够列出所有可能会用到的取值,并给它们取一个名字。

int main()
{
    enum Sex
	{
	     //枚举常量     性别
	MALE,
	FEMALE,
	SECRET
	};
	enum Sex s = FEMALE;  //利用枚举常量给变量赋值
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n",SECRET);
    return 0;
}

在使用枚举常量的时候,需要注意以下几点:

不能对枚举常量赋值,只能将它们的值赋给其他的变量。不能再定义与枚举常量名字相同的变量。不能用&取得它们的地址。

以上就是C语言中常见的几种常量,合理使用常量可以使程序可读性更强,条理清晰,易于维护。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

时间: 2021-09-11

C语言菜鸟基础教程之常量和变量

先动手编写程序: #include <stdio.h> int main() { int a = 1; printf("a = %d\n", a); a = 2; printf("a = %d\n", a); return 0; } 运行结果: a = 1 a = 2 程序分析: int a = 1; 定义了一个整型变量a,把1赋值给a.注意,C语言中的等号表示赋值,作用是把一个常量赋值给一个变量,这样变量就获得了一个临时的固定值. 为什么说是临时的呢?

C语言 常量,变量及数据详细介绍

一.数据 图片文字等都是数据,在计算机中以0和1存储. (一)分类 数据分为静态数据和动态数据. ①. 静态数据:一些永久性的的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的.一般以文件的形式存储在硬盘上,电脑关机重启后依然存在. ②. 动态数据:程序运行过程中,动态产生的的临时数据,一般存储在内存中,内存的存储空间一般较小,计算机关闭后这些数据就会被清除.软件或者电脑关闭则这些临时数据会被清除. ③. 静态数据和动态数据可以转换. ④. 注意:为什么不把动态数据存放到硬盘?因为直接访问内存

c语言常量定义规则知识点总结

c语言常量定义规则 常量的定义:常量是指在程序运行过程中其值不能被改变的量. C语言中常量可分为直接常量和符号常量. 直接常量是指直接用具体数据表达的一种形式,直接常量又分为整型常量.实型常量.字符常量和字符串常量: 符号常量则是指用C语言标识符定义的常量. 整型常量就是整常数,10进制数.8进制数和16进制数三种.如:10.012.0x0A 实型常量也称为浮点型常量.如:3.14 . 1.2E-4 字符型常量必须用单引号括起来.如:'M' , '\n' 字符串常量应用双引号括起来.如:"abc

C语言入门篇--四大常量(字面,const修饰,宏,枚举)及标识符

目录 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.1标识符 3.2宏常量 4.枚举常量 1.字面常量 (1)字面意思是啥就是啥,看其表示就可以知道其值和类型. (2)有值无名,一用来初始化变量,与一种字符相关联. #include <stdio.h> int main() { 10;//int型数字10 'c';//char型字符c "Hello world!";//字符串常量(!C语言无字符串类型) int sum=10+20;//1

C语言 常量详解及示例代码

C 常量 常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量. 常量可以是任何的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 常量就像是常规的变量,只不过常量的值在定义后不能进行修改. 整数常量 整数常量可以是十进制.八进制或十六进制的常量.前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制. 整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long).

C语言 变量详解及示例代码

C 变量 变量其实只不过是程序可操作的存储区的名称.C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和下划线字符组成.它必须以字母或下划线开头.大写字母和小写字母是不同的,因为 C 是大小写敏感的.基于前一章讲解的基本类型,有以下几种基本的变量类型: 类型 描述 char 通常是一个八位字节(一个字节).这是一个整数类型. int 对机器而言,整数的最自然的大小. float 单精度浮点值. doub

C语言 位域详解及示例代码

有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可.例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位.正是基于这种考虑,C语言又提供了一种叫做位域的数据结构. 在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域.请看下面的例子: struct bs{ unsigned m; unsigned n: 4; unsigned char ch: 6; } :后面的数字用来限定成员变量占用的位数.成员 m 没有限制,根据

AngularJs bootstrap详解及示例代码

AngularJs学习笔记系列第一篇,希望我可以坚持写下去.本文内容主要来自 http://docs.angularjs.org/guide/ 文档的内容,但也加入些许自己的理解与尝试结果. 一.总括 本文用于解释Angular初始化的过程,以及如何在你有需要的时候对Angular进行手工初始化. 二.Angular <script> 标签 本例用于展示如何通过推荐的路径整合Angular,实现自动初始化. <!doctype html> <html xmlns:ng=&qu

php 魔术常量详解及实例代码

php 魔术常量详解 实例: class MoShu{ public function moshu() { echo '当前类名:' . __CLASS__ . "<br />"; echo '当前方法名:' . __FUNCTION__ . "<br />"; echo '当前文件中所在的行数:' . __LINE__ . "<br />"; echo '当前文件绝对路径:' . __FILE__ . &qu

C语言 文件的打开与关闭详解及示例代码

在C语言中,文件操作都是由库函数来完成的,这节介绍文件的打开和关闭. 文件的打开(fopen函数) fopen() 函数用来打开一个文件,它的原型为: FILE *fopen(char *filename, char *mode); filename为文件名(包括文件路径),mode为打开方式,它们都是字符串.fopen() 会获取文件信息,包括文件名.文件状态.当前读写位置等,并将这些信息保存到一个FILE类型的结构体变量中,然后将该变量的地址返回. FILE是在stdio.h头文件中定义的一

Android 事件分发详解及示例代码

事件分发是Android中非常重要的机制,是用户与界面交互的基础.这篇文章将通过示例打印出的Log,绘制出事件分发的流程图,让大家更容易的去理解Android的事件分发机制. 一.必要的基础知识 1.相关方法 Android中与事件分发相关的方法主要包括dispatchTouchEvent.onInterceptTouchEvent.onTouchEvent三个方法,而事件分发一般会经过三种容器,分别为Activity.ViewGroup.View.下表对这三种容器分别拥有的事件分发相关方法进行

Java 中的注解详解及示例代码

在Java中,注解(Annotation)引入始于Java5,用来描述Java代码的元信息,通常情况下注解不会直接影响代码的执行,尽管有些注解可以用来做到影响代码执行. 注解可以做什么 Java中的注解通常扮演以下角色 编译器指令 构建时指令 运行时指令 其中 Java内置了三种编译器指令,本文后面部分会重点介绍 Java注解可以应用在构建时,即当你构建你的项目时.构建过程包括生成源码,编译源码,生成xml文件,打包编译的源码和文件到JAR包等.软件的构建通常使用诸如Apache Ant和Mav

C语言 枚举类型(Enum)详解及示例代码

在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例,我们可以使用#define命令来给每天指定一个名字: #include <stdio.h> #define Mon 1 #define Tues 2 #define Wed 3 #define Thurs 4 #define Fri 5 #define Sat 6 #define Sun 7 in

C语言 数组指针详解及示例代码

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素.在C语言中,我们将第 0 个元素的地址称为数组的首地址.以上面的数组为例,下图是 arr 的指向: 下面的例子演示了如何以指针的方