基本语法
对于基本语法,我们在上一章末尾给大家进行了一点普及,而这一章,便是详细的讲解
令牌(Token)
我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
比如这一句代码
printf("Hello, World!");
它便包含5个令牌,分别是:
printf
(
"Hello, World!"
)
;
而且,每一个令牌缺一不可。
分号(;) --英文半角符号,可能无用成中文
在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。
例如,下面是两个不同的语句:
printf("Hello, World!");
return 0;
注释(// or /*......*/)
C 程序中 注释是//与/*......*/,学习其他语言的朋友可不要弄混了
在这里解释一下注释是什么意思,部分初学者可能不知道,注释就是给你的代码写个旁注,所以编译器编译程序的时候会跳过注释。
下面是注释符号的用法
// 单行注释
/* 单行注释 */
/*
多行注释
多行注释
多行注释
*/
在这里,我进行解释一下,以 // 开始的单行注释,这种注释可以单独占一行;
/* */ 这种格式的注释可以单行或多行。
标识符
C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。
下面,列出几个有效标识符
myname | Myname | my_name | my_name_01 | abcd |
temp | Temp | _temp | a | www_wzl1_top |
关键字(不能用作标识符)
下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数返回值类型 |
const | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 |
continue | 结束当前循环,开始下一轮循环 |
default | 开关语句中的"其它"分支 |
do | 循环语句的循环体 |
double | 声明双精度浮点型变量或函数返回值类型 |
else | 条件语句否定分支(与 if 连用) |
enum | 声明枚举类型 |
extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
float | 声明浮点型变量或函数返回值类型 |
for | 一种循环语句 |
goto | 无条件跳转语句 |
if | 条件语句 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数返回值类型 |
register | 声明寄存器变量 |
return | 子程序返回语句(可以带参数,也可不带参数) |
short | 声明短整型变量或函数 |
signed | 声明有符号类型变量或函数 |
sizeof | 计算数据类型或变量长度(即所占字节数) |
static | 声明静态变量 |
struct | 声明结构体类型 |
switch | 用于开关语句 |
typedef | 用以给数据类型取别名 |
unsigned | 声明无符号类型变量或函数 |
union | 声明共用体类型 |
void | 声明函数无返回值或无参数,声明无类型指针 |
volatile | 说明变量在程序执行中可被隐含地改变 |
while | 循环语句的循环条件 |
C99 新增关键字
_Bool | _Complex | _Imaginary | inline | restrict |
C11 新增关键字
_Alignas | _Alignof | _Atomic | _Generic | _Noreturn |
_Static_assert | _Thread_local |
C 中的空格
只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。
在 C 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:
int age; //定义年龄
在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:
fruit = apples + oranges; // 获取水果的总数
fruit 和 =,或者 = 和 apples 之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。
输入与输出
printf与scanf
输入与输出,在此我们暂时只讲printf与scanf。
首先,这两个函数都需要用到一个头文件”stdio.h“,而这个头文件的意义,就和它翻译过来的中文意义一样:标准输入输出头文件; 磁盘文件写入; 输入输出头文。这是C语言的标准库,若想要对这个库有更多了解,可以访问https://www.runoob.com/cprogramming/c-standard-library-stdio-h.html
printf
C 库函数 int printf(const char *format, ...) 发送格式化输出到标准输出 stdout。
printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);