一.导入
我们之前就说过生活中是有很多变化与不变的量的,我们将变化的量称为变量,将不变的量称为常量
常量在生活中也有很多,如:血型、性别(不考虑特殊情况)、身份证号,那么在C语言中有哪些常量呢?
二.C语言中常量的分类
字面常量
const修饰的常变量
#define定义的标识符常量
枚举常量
接下来我将为大家逐个进行演示这些常量的用法
三.常量的用法:
1.字面常量
其实字面常量很好理解,比如 520 3.14这些都是字面常量,接下来我将在编译器中写几个字面常量的用法,代码如下:
int main(void)
{
520; //整型常量
3.14; //浮点型常量
'A'; //字符常量
"hello"; //字符串常量
return 0;
}
这也是C语言中较为简单的常量
2.const修饰的常变量
先问大家一个问题,这段代码执行后程序输出的值是多少:
#include<stdio.h>
int main(void)
{
int a = 10;
a = 20;
printf("a=%d\n",a);
return 0;
}
很显然输出的是20,虽然变量 a 在一开始初始化成了10,但是下面一行代码却将20赋给了a,所以a的值最终为20,程序运行结果如图所示:
但是我们改一下上述代码,将:
int a =10;
改为:
const int a = 10;
其余代码保持不变,我们再次编译程序就会发现程序报错了,如图所示:
编译器告诉我们:无法分配给具有 const 类型的变量 a 也就说当这个变量被const修饰后这个变量的值不可以再改变了,所以我们将用const修饰的变量称为常变量
注意⚠️:这里变量虽然不可以被直接改变,具有常量的特性但是其本质依然是一个变量,在声明数组的时候如果用常变量来指定数组的大小是非法的!
示例:
int arr[10] = {0}; //合法
int i =10;
int arr[i] = {0}; //非法 禁止使用变量制定数组大小
const int i = 10;
int arr[i] = {0}; //非法 使用const修饰的常变量其本质依然是变量
3.#define定义的标识符常量
当我们需要定义一个常量的时候我们可以这样子写:
#define PI 3.14
这样子我们就定义了一个标识符为PI,值为3.14的常量,我们可以在程序中来输出这个常量:
#include<stdio.h>
#define PI 3.14
int main(void)
{
printf("PI=%.2f\n",PI);
return 0;
}
由于3.14是浮点数,所以我们在使用printf()的时候需要将转义字符%d改成%f,这样就可以正常的输出了,程序运行结果如下:
我们也可以使用#define 来创建字符串常量,代码如下:
#define STR "abc"
我们可以使用printf()函数来输出字符串:
printf("STR=%s",STR);
作为标识符常量其值也是不可被改变的,如以下代码编译时就会报错:
#include<stdio.h>
#define NUM 500
int main(void)
{
NUM = 1000;
return 0;
}
原因是:NUM是一个标识符常量不可被改变的
4.枚举常量
我们这里用三原色来作为枚举的对象,代码如下:
#include<stdio.h>
enum Color{
RED,
YELLOW,
BLUE
};
int main(void)
{
enum Color a = RED;
return 0;
}
这里我们创建了一个变量a,用于代表RED,但是如果我们再去给变量a赋值程序就会出错,如图所示:
2023/9/18
王起舟
标签:10,const,复习,常量,int,变量,define From: https://blog.51cto.com/u_16183773/7516068