常量就是在程序运行过程中值不会发生改变,而且一眼就成看出其值的量。
C语言中的常量分为多种类型:整型、浮点型、字符型、字符串。除此之外,也可以使用关键字enum,define,const来定义常量。
#include <stdio.h>
int main(){
/*
使用enum来定义常量
*/
enum week{ //定义week数据类型
Mon = 1, Tue, Wes, Thur, Fri, Sat, Sun
};
enum week myWeek; //定义week变量
int num;
printf("input a number between 1 and 7: ");
scanf("%d", &num);
switch( num ){
case Mon:
printf("今天是星期%d", Mon);
break;
case Tue:
printf("今天是星期%d", Tue);
break;
case Wes:
printf("今天是星期%d", Wes);
break;
case Thur:
printf("今天是星期%d", Thur);
break;
case Fri:
printf("今天是星期%d", Fri);
break;
case Sat:
printf("今天是星期%d", Sat);
case Sun:
printf("今天是星期%d", Sun);
break;
default:
printf("输入数字有错误");
}
}
符号常量用 #define 常量名 常量值 进行定义,定义之后,程序中所有出现常量名的地方,都会在预处理是进行替换。
/*使用define定义常量,在预处理进行替换*/
#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main()
{
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
使用关键字const来定义常量。在C语言中其实const修饰的也是作为一个变量的,但是此变量为只读变量。就本质而言,它还是一个变量,只是此关键字指示程序,不能修改此变量的内存空间。
/*使用const定义变量*/
#include <stdio.h>
int main()
{
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
/*改变由const修饰的变量,编译器将报错*/
#include <stdio.h>
int main(){
const int a=2;
a = 1;
}
/* 输出
E:\space\CPP\learning\testV.c:7:4: error: assignment of read-only variable 'a'
a = 1;
^
*/