根据前面变量知识点的学习可以知道,
常量--不能改变的量 常量可分为以下四种: 1字面常量 2const修饰的常变量 3#define定义的标识符常量 4枚举常量。
第一种字面常量 请看如下代码: #include<stdio.h>
int main() { 50; 100; return 0; }
结果:“空白”
原因,本人理解,50,100为常量,不需要进行计算,就可以直接得出来,无需进行系统编译,故不显示。
第二种常量表示方式--const修饰的常变量
即将变量经过const修饰过后,使得变量变成一个常量
例如:
#include<stdio.h>
int main()
{
const int age = 22;
int c = age;
printf("c=%d/n", c);
return 0;
}
结果:22
为什么叫常变量,而不是就叫常量呢?
接下俩引入一个概念,数组[X](X为常量),即数组中[]内的数必须是确切的常量,而不是变量
接下来请看代码2
#include<stdio.h>
int main()
{
int arr[10];
return 0;
}
这段代码系统未报错
接下来看[]内的为变量,但我们用const进行修饰,代码3
#include<stdio.h>
int main()
{
const int add=10;
int arr [add];
return 0;
}
系统会在[add]这里报错,表面这里的add经过const修饰后并不是一个真正的常量,只是代表着在某些时候经过修饰后,在对变量要求不太高的情况下,使变量获得了常量的能力,本质上还是变量,故称为“常变量”
第三种常量表示--用#define定义的常量,通过define定义后的变量就是一个彻彻底底的常量,不再具有变量功能
请看代码4
#include<stdio.h>
#define MAX 10
int main()
{
int a = MAX;
printf("a=%d/n",a);
return 0;
}
如果我们已近定义过MAX了,我任让它做变量来处理,接下来就会报错,代码5
#include<stdio.h>
#define MAX 10
int main()
{
int MAX = 100;
int a = MAX;
printf("a=%d/n",a);
return 0;
}
此时int MAX = 100;这一栏,就会被标记报错
第四种常量--枚举常量--可以一个一个列举的常量
如,性别:男人,女人,秘密
星期:星期一,星期二,星期三,···
接下来定义一个枚举常量的函数
#include<stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
int main()
{
enum Sex s = MALE;
printf("%d/n",MALE);
printf("%d/n",FEMALE);
printf("%d/n",SECRET);
return 0;
}
结果:0
1
2
结论:枚举变量是常量
如果未给枚举变量赋初值,则默认是从0开始以等差为1的逐级增加的等差数列
如果赋初值会如何?
#include<stdio.h>
enum Sex
{
MALE = 3,
FEMALE,
SECRET
};
int main()
{
enum Sex s = MALE;
printf("%d/n",MALE);
printf("%d/n",FEMALE);
printf("%d/n",SECRET);
return 0;
}
结果:3
4
5
结论:如果未给枚举变量赋初值,则默认是从开始赋的初值以等差为1的逐级增加的等差数列
此文章为本人理解的,如有不对请指正。