C语言-常量(宏定义、const、枚举)

常量(宏定义、const、枚举)

  • 一、什么是常量
  • 二、定义常量
    • 1.使用宏定义
      • Ⅰ.什么是宏定义
      • Ⅱ.定义格式
      • Ⅲ.实例
    • 2.使用const限定符
    • 3.使用枚举
  • 三、练习

一、什么是常量

程序运行时,其值不能改变的量,即为常量

  常量有以下几类:

  1. 字面常量(就是直接写出的数字,例如3.14
  2. #define定义的标识符常量
  3. const修饰的常变量
  4. 枚举常量

二、定义常量

1.使用宏定义

Ⅰ.什么是宏定义

  在文件开头用 #define 来定义常量,也叫作“宏定义”。
  宏定义,就是用一个标识符来表示一个常量值,如果在后面的代码中出现了该标识符,那么编译时就全部替换成指定的常量值。即用宏体替换所有宏名,简称宏替换

Ⅱ.定义格式

定义格式:#define 符号常量名 常量值

  • 符号常量名,称为宏名,属于标识符,一般定义时用大写字母表示。
  • 常量值,称为宏体,可以是数值常量,也可以是字符常量。

    宏名用大写字母表示,与变量作区别(软性要求)

宏定义不是 C 语句,后面不能有分号

Ⅲ.实例

#include 

#define ZERO 0   //#define的标识符常量

int main() {
	printf("zero = %d\n", ZERO);
    return 0;
}

  跟#include一样,“#”开头的语句都是“预处理语句”,在编译之前,预处理器会查找程序中所有的“ZERO”,并把它替换成0,这个过程称为预编译处理。然后将预处理的结果和源程序一起再进行编译处理得到目标代码 (OBJ文件)

C语言-常量(宏定义、const、枚举)_第1张图片

2.使用const限定符

  C99中新的声明方式,这种方式跟定义一个变量是一样的,只需要在变量的数据类型前再加上一个const关键字,这被称为“限定符”。

格式:const 数据类型 常量名 = 常量值;

  例如:

const float PI = 3.14f; // 一旦创建就不能改变,所以必须初始化。

跟使用 #define定义宏常量相比,const定义的常量有详细的数据类型,而且会在编译阶段进行安全检查,在运行时才完成替换,所以会更加安全和方便。

3.使用枚举

  枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。

#include 

//使用enum定义枚举类
enum Sex{
    //括号中的MALE,FEMALE,SECRET是枚举常量,因为我们没有赋值,默认是从0开始,依次向下递增1的
	MALE, // 0
	FEMALE, // 1
	SECRET // 2
};

三、练习

这段代码的打印结果为________。

#include 
#define  CANBERRA(x,y)  ((x-y)/(x+y))

int main() {
    printf("%lf", CANBERRA(1.0+2.0,0.0+2.0));
    return 0;
}

答案:1.0

宏替换后为(1.0+2.0-0.0+2.0)/(1.0+2.0+0+2.0)=1.0;

你可能感兴趣的:(C语言,c语言,算法,开发语言)