关键字
C语言的关键字(保留字)是编程时具有特殊含义的预定义标识符,不能用作变量名、函数名或其他用户自定义标识符。根据它们的功能和用途,C语言的关键字可以分为以下几类:
存储类型关键字
auto
:声明自动存储期限的局部变量,在函数执行完毕后自动释放。static
:用于声明静态存储期限的变量或函数,对于局部变量意味着生存期从程序开始到结束,对于全局变量则限制其作用域在当前文件内。register
:建议编译器将变量存储在寄存器中以提高访问速度,但不保证一定存储在寄存器中。extern
:声明一个外部链接的变量或函数,可以在其他文件中定义。
数据类型关键字
char
:声明字符型变量或函数。double
:声明双精度浮点型变量或函数。enum
:声明枚举类型。float
:声明单精度浮点型变量或函数。int
:声明整型变量或函数。long
:与int
一起使用表示长整型,或者单独用于声明长双精度浮点型(例如long double
)。short
:与int
一起使用表示短整型。signed
:指定类型的变量为有符号类型,默认情况下,int
类型既可以是有符号也可以是无符号的。struct
:声明结构体类型。union
:声明联合类型。unsigned
:指定类型的变量为无符号类型。void
:表示函数没有返回值或指针类型没有指向的数据类型。
控制语句关键字
break
:终止循环或switch
语句的执行。case
:switch
语句中的分支标签。continue
:结束当前循环迭代,跳转到下一次循环条件判断。default
:switch
语句的默认分支。do
:do-while
循环的开始部分。else
:if
语句或switch-case
结构中未匹配情况的后续代码块。for
:循环控制结构。goto
:无条件跳转到同一函数内的标记处,不推荐使用。if
:条件控制结构。return
:从函数返回并可选地带有返回值。switch
:多分支选择结构。while
:循环控制结构。
其他关键字
const
:声明只读变量或指针所指对象不可修改。sizeof
:运算符,计算变量或类型的大小(以字节为单位)。_Bool
:C99标准引入的布尔类型关键字,对应bool
。_Complex
和Imaginary
:C99标准引入的复数和虚数类型关键字。Alignas
、_Alignof
:C11标准引入的对齐说明符。_Atomic
:C11标准引入的原子类型属性关键字。_Static_assert
:编译时断言,C11标准引入。_Noreturn
:表明函数不会返回的属性关键字。_Thread_local
:C11标准引入的线程局部存储属性关键字。_Generic
:C11标准引入的泛型选择表达式关键字。
常量与变量
在C语言中,常量和变量是两种基本的数据存储形式,它们在程序运行时具有不同的性质。
常量(Constants)
常量是在程序执行过程中其值始终保持不变的量。一旦定义了常量,就不能再更改它的值。C语言中的常量可以是数值型、字符型或其他类型,并且可以通过直接赋值或使用预处理器宏来定义。
示例
直接常量(字面常量)
整型常量:
int const myInteger = 100
;浮点型常量:
double const myFloat = 3.1415926535
;字符常量:
char const myChar = 'A'
;字符串常量:
const char *myString = "Hello, World!"
;
符号常量(通过#define预处理器定义)
#define PI 3.1415926535 // 定义一个浮点数常量PI
int main() {
double circumference = 2 * PI * 5; // 使用符号常量计算圆周长
return 0;
}
const关键字定义的常量
const int MAX_ELEMENTS = 100; // 定义一个整型常量MAX_ELEMENTS
变量(Variables)
变量是在程序运行过程中其值可以改变的量。在C语言中,变量必须先声明后使用,声明时需要指定变量的类型和名称,并且可以初始化。
命名规则
变量名必须以字母(a-z或A-Z)或下划线(_)开头。不能以数字开始。
变量名可以包含后续的字母、数字和下划线,也就是说变量名的有效字符集包括 a-z、A-Z、0-9 和 。
C语言是大小写敏感的,因此
myVariable
与myvariable
是两个不同的变量名。变量名不能是C语言的关键字。例如,不能将变量命名为
for
、while
、int 等,因为这些是C语言保留的关键字。变量名中不允许有空格或其他特殊字符(除了下划线 )。
命名应当直观且具有可读性,最好能够反映变量的用途或所存储的数据类型,如
studentName
、age
、maxTemperature
等。虽然C语言没有严格的长度限制,但在实践中应尽量保持变量名简洁且有意义,避免过长的变量名,但如果必要,可以通过去掉冗余部分或者使用缩写来缩短名称,但需确保缩写仍然清晰易懂。
在同一程序中,每个变量名都应该是唯一的,即不可重复定义同名变量。
示例
#include <stdio.h>
int main() {
int age; // 声明一个整型变量age,但未初始化
float weight = 75.5; // 声明并初始化一个浮点型变量weight
// 给age赋值
age = 30;
// 输出变量的值
printf("Age: %d\n", age);
printf("Weight: %.2f\n", weight);
// 在程序执行过程中,这些变量的值可以被重新赋值和修改
return 0;
}
总结来说,在C语言中,常量是为了表示不可变的固定值而存在的,确保程序执行过程中的安全性和一致性;而变量则是用于存储可变数据的核心机制,允许程序根据条件或循环等结构动态地处理信息。
评论区