常量:
c语言中的常量分为以下几种:
字符常量
const修饰的常变量
#define定义的标识符常量
枚举常量
1,字面常量
写出来后不会变动的,就是字面常量
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
3, 14;
10;
'a';
"abcdef";
return 0;
}
分别为
3, 14;浮点型常量
10;整型常量
'a';字符常量
"abcdef";字符串常量
2,const修饰的常变量
假如我们创建一个int num=10;,因为它是变量当我们num=20;时打印出来就是20
而当我们在前面加一个const后,程序就会报错,这是因为这个值不能被修改,在使用的时候需要将num=20;删除
num是常变量——具有常属性(不能被改变的属性)
虽然它具有常属性,但是仍然是一个变量,所以称之为常变量
我们来看一下它的变量属性
先创建一个数组,用const修饰int n但是由于它的本质是常量所以在运行过程中就出现了错误
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
const int n = 10;
int arr[n] = { 0 };
return 0;
}
注意:
const static或者全局const变量才存放在常量区,其他存在栈上,是个伪常量,可以通过指针改变常量的值
3,#define定义的标识符常量
假如我们创建一个#define定义的标识符常量,打印出来的就是2000(#define也可以定义在里面,只要定义在printf之前就行)
为什么#define定义是一个常量,因为max无法改变,假如我们创建一个max=1000;程序就会报错
4, 枚举常量
可以一一列举的常量
enum为枚举关键词,male,female,secret为这种枚举类型的变量未来可能的取值
enum sex
{
male,
female,
secret
};
假如我们创建一个enum sex s=male;它的可能取值就只能是上述几个
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
enum sex//枚举关键字
{
male,
female,
secret
};
int main()
{
enum sex s = male;
return 0;
}
而它为什么是枚举常量
因为它也有自己的值,值默认从0开始
但我们将male=3,这是赋初值,改变开始时候的量,但是不能在主函数内使male=3,这样程序就会出错