前言:刚接触一门语言的时候,可能觉得语法诡异没法理解,不过不要紧,学语言最忌讳纠结于语法,先记下来,码就完了!
一、软件安装
编译器个人比较喜欢用C-Free5,界面简洁,对于初学者友好。
软件:
http://www.programarts.com/cfree_ch/download.htm
安装教程:
https://blog.csdn.net/a1585570507/article/details/79477732
二、入门案例
1.启动编译器
2.编译程序
#include <stdio.h>
int main()
{
printf("Hello, World! \n");
return 0;
}
3.点击运行
三、程序结构
C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
#include <stdio.h>
int main()
{
//这是行注释
/*
这是段注释
*/
printf("Hello, World! \n");
return 0;
}
这是一个只有main主函数没有变量的一个小例子,下面我们讲解一下这段程序:
- 程序的第一行 #include <stdio.h> 是预处理器指令(以 .h 的文件叫头文件,<>也可以写成" "),告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
- 下一行 int main() 是主函数,程序从这里开始执行。(什么是函数我们以后讲解)
- 下一行/ /、 /…/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
- 下一行 printf(…) 是 C 中另一个可用的函数,会在屏幕上显示消息 “Hello, World!”。(双引号" "中有什么就将输出什么,\n表示换行,如果不希望输出时换行则不加)
- 下一行 return 0; 终止 main() 函数,并返回值 0。(什么是返回值,以后再讲)
C 的令牌(Tokens)
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
分号 ;
在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。(参考上面的小案例)
标识符
C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
C 标识符内不允许出现标点字符,比如 @、$ 和 %。C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。下面列出几个有效的标识符:
name zara abc xie_xiao a_123
name50 _temp j a2b9 retVal
关键字
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数返回值类型 |
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之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。另一方面,在下面的语句中:
int a = b + c;
a和 =,或者 = 和 b之间的空格字符不是必需的,但是为了增强可读性,可以根据需要适当增加一些空格。