C语言知识汇总 | 20-C语言标识符、关键字、注释、表达式与语句

一、标识符(Identifier)

定义变量时,我们使用了诸如 a、abc、mn123 这样的名字,它们都是程序员自己起的,一般能够表达出变量的作用,这叫做标识符(Identifier)

标识符就是程序员自己起的名字,除了变量名,后面还会讲到函数名、宏名、结构体名等,它们都是标识符。不过,名字也不能随便起,要遵守规范;C语言规定,标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线,不能是数字。

以下是合法的标识符:

a, x,  x3, BOOK_1, sum5

以下是非法的标识符:

3s    不能以数字开头
s*T    出现非法字符*
-3x    不能以减号(-)开头
bowy-1    出现非法字符减号(-)

在使用标识符时还必须注意以下几点:

  • C语言虽然不限制标识符的长度,但是它受到不同编译器的限制,同时也受到操作系统的限制。例如在某个编译器中规定标识符前128位有效,当两个标识符前128位相同时,则被认为是同一个标识符。
  • 在标识符中,大小写是有区别的,例如 BOOK 和 book 是两个不同的标识符。
  • 标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号,因此,命名应尽量有相应的意义,以便于阅读和理解,做到“顾名思义”。

二、关键字(Keywords)

关键字(Keywords)是由C语言规定的具有特定意义的字符串,通常也称为保留字,例如 int、char、long、float、unsigned 等。定义的标识符不能与关键字相同,否则会出现错误。

可以将关键字理解为具有特殊含义的标识符,它们已经被系统使用。

标准C语言中一共规定了32个关键字,如下表所示:

关键字 说明
auto 声明自动变量
short 声明短整型变量或函数
int 声明整型变量或函数
long 声明长整型变量或函数
float 声明浮点型变量或函数
double 声明双精度变量或函数
char 声明字符型变量或函数
struct 声明结构体变量或函数
union 声明共用数据类型
enum 声明枚举类型
typedef 用以给数据类型取别名
const 声明只读变量
unsigned 声明无符号类型变量或函数
signed 声明有符号类型变量或函数
extern 声明变量是在其他文件正声明
register 声明寄存器变量
static 声明静态变量
volatile 说明变量在程序执行中可被隐含地改变
void 声明函数无返回值或无参数,声明无类型指针
if 条件语句
else 条件语句否定分支(与 if 连用)
switch 用于开关语句
case 开关语句分支
for 一种循环语句
do 循环语句的循环体
while 循环语句的循环条件
goto 无条件跳转语句
continue 结束当前循环,开始下一轮循环
break 跳出当前循环
default 开关语句中的“其他”分支
sizeof 计算数据类型长度
return 子程序返回语句(可以带参数,也可不带参数)循环条件

三、注释(Comments)

注释(Comments)可以出现在代码中的任何位置,用来向用户提示或解释代码的含义。程序编译时,会忽略注释,不做任何处理,就好像它不存在一样。

C语言支持单行注释和多行注释:

  • 单行注释以//开头,直到本行末尾(不能换行);
  • 多行注释以/*开头,以*/结尾,注释内容可以有一行或多行。

一个使用注释的例子:

/*
Powered by: https://blog.csdn.net
Author: neutionwei
Date: 2020-08-29
*/
#include <stdio.h>

int main()
{
	/* puts 会在末尾自动添加换行符 */
	puts("https://blog.csdn.net");
	printf("neutionwei\n"); //printf要手动添加换行符
	return 0;
}

运行结果:

https://blog.csdn.net
neutionwei

在调试程序的过程中可以将暂时将不使用的语句注释掉,使编译器跳过不作处理,待调试结束后再去掉注释。

需要注意的是,多行注释不能嵌套使用。例如下面的注释是错误的:

/*neu/*tion*/wei*/

而下面的注释是正确的:

/*neutionwei*/  /*blog.csdn.net*/

四、表达式(Expression)与语句(Statement)

表达式(Expression)和语句(Statement)的概念在C语言中并没有明确的定义:

  • 表达式可以看做一个计算的公式,往往由数据、变量、运算符等组成,例如3*4+5a=c=d等,表达式的结果必定是一个值;
  • 语句的范围更加广泛,不一定是计算,不一定有值,可以是某个操作、某个函数、选择结构、循环等。

注意:

  • 表达式必须有一个执行结果,这个结果必须是一个值,例如3*4+5的结果 17,a=c=d=10的结果是 10,printf("hello")的结果是 5(printf 的返回值是成功打印的字符的个数)。
  • 以分号;结束的往往称为语句,而不是表达式,例如3*4+5;a=c=d;等。

猜你喜欢

转载自blog.csdn.net/Neutionwei/article/details/108292754