#include <stdio.h>
#include <stdlib.h>
int main()
{
const char b= 'c';
char a;
a=getchar();
putchar('\n');
switch(a)
{
case 97:
printf("Hello world1!\n");
break;
case 'b':
printf("Hello world2!\n");
break;
case b://error!
printf("Hello world3!\n");
default:
break;
}
//printf("Hello world!\n");
return 0;
}
c语言中
case后面只能跟整形或者字符型的常量或常量表达式;
而c语言中const 修饰的是只读变量,具有不可变型,而且const修饰的只读变量只能在定义的时候初始化,不能定义后再赋值。
因此case后面不能跟const修饰的只读变量
以上代码不能通过编译
因为是变量,所以不能当成常量用,因此下面的代码也是非法的:
const int Max =100;
int Numbers[Max];
使用const代替宏定义#define,可以节省空间,避免不必要的内存分配,提高效率