1. 合法的声明和初始化
1.1 变量声明
在C语言中,声明一个变量需要指定变量的类型,然后可以选择性地为它赋初始值。最简单的变量声明如下:
int a;
这条语句声明了一个整型变量a,但并没有为它赋初值。如果需要为变量赋初值,可以使用以下语句:
int a = 10;
这条语句声明了一个整型变量a,并将其初值设为10。
另外,在C语言中,也可以同时声明并赋初值多个变量,如下:
int a = 10, b = 20, c = 30;
这条语句声明了三个整型变量a、b、c,并初始化它们的值。
1.2 常量声明
C语言中也支持常量的声明和初始化,使用关键字const来声明一个常量,如下:
const int a = 10;
这条语句声明了一个整型常量a,并将其初值设为10,常量的值不可更改。
1.3 宏定义
宏定义是一种预处理指令,可以在代码中定义一个常量、函数或代码片段,并进行调用。宏定义不需要指定类型,它的值在编译时会被替换到代码中。例如:
#define PI 3.14159
这条语句将常量PI定义为3.14159,可以在程序中直接调用PI。
2. 非法的声明和初始化
2.1 变量声明与定义分开
在C语言中,声明和定义是不同的概念。声明是告诉编译器这个变量的类型和名称,而定义则是为变量分配内存空间。如果在声明变量之后没有进行定义,那么在使用这个变量的时候会出现错误。例如:
int a;
a = 10;
这样的语句是非法的,应该将变量声明和定义放在一起:
int a = 10;
2.2 常量的值不能更改
在C语言中,常量的值是不能更改的,如果试图更改常量的值会导致编译错误。例如:
const int a = 10;
a = 20;
这样的语句是非法的,应该将常量的值定义为不可更改的。
2.3 宏定义没有值
在宏定义中,如果没有为其赋值,那么在代码中调用宏定义会导致编译错误。例如:
#define PI;
这样的语句是非法的,应该为其赋值,如:
#define PI 3.14159
综上所述,C语言中变量和常量的声明与初始化必须正确配对,宏定义也必须为其赋值,否则会导致编译错误。