第一讲:C 语言常见概念
本文围绕 C 语言常见概念展开,先阐述 C 语言作为计算机语言的定位,回顾其为 Unix 系统开发而生的历史与标准化进程。接着讲解编译链接流程,对比不同编译器及集成开发环境,重点介绍 VS 2022 创建项目、编写首个 C 程序的步骤。还深入解析main函数、printf等库函数、关键字、字符与 ASCII 编码、字符串与\0、转义字符、语句分类以及注释等核心概念,帮助读者快速入门 C 语言。
第一讲:C 语言常见概念
目录
- C 语言是什么
- C 语言的历史和辉煌
- 编译器的选择 VS 2022
- VS 项目和源文件、头文件介绍
- 第一个 C 语言程序
- main 函数
- printf 和库函数
- 关键字介绍
- 字符和 ASCII 编码
- 字符串和
\0 - 转义字符
- 语句和语句分类
- 注释
1. C 语言是什么
- 自然语言:
- 传统的自然语言:人 →自然语言(汉语、日语、英语等)→ 人;
- AI 人工智能、大模型出现后:人 →(自然语言)→ 大模型 →(计算机语言)→ 计算机。
- 计算机语言:人 →(C/C++/Java/Python/…)→ 计算机。
2. C 语言的历史和辉煌
C 语言最初是作为 Unix 系统的开发工具而发明的(对比 Fortran)。
- 1969 年,发明 B 语言。
- 1972 年,发明 C 语言。
- 1973 年,Unix 系统使用 C 语言重写。
- 1988 年,C 语言标准化,有 ANSI C、C89、C90、C99、C11 等。
3. 编译器的选择 VS 2022
(1) 编译和链接
- C 语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器的编译和链接器的链接,生成二进制的可执行文件(计算机能识别二进制信息)。
- 一个项目一般有多个源文件(
.c),先编译成目标文件(.obj),再通过链接器(link.exe)和链接库,生成可执行程序(.exe)。- 流程示例:
test.c、add.c、xxx.c→ 编译器(cl.exe)→test.obj、add.obj、xxx.obj→ 链接器(link.exe)+ 链接库 → 可执行程序xxx.exe。
- 流程示例:
(2) 编译器的对比
| 编译器 | 集成开发环境(IDE) |
|---|---|
| msvc(微软) | VS 2022(微软,使用方便,但安装包大) |
| Clang(苹果) | XCode(苹果,适用于苹果电脑) |
| gcc(开源) | Code::Blocks(小众,需配置环境);Dev-C++(小巧,功能简单,蓝桥杯、ACM 竞赛用);Clion(收费) |
注:VS 2022 ≠ VS Code。
VS 2022 是集成开发环境;VS Code 是编辑器,支持插件,可搭建 C/C++ 环境,但较麻烦,不建议初学者用,适合前端、多脚本场景。
4+5. VS 项目和源文件、头文件介绍 + 第一个 C 语言程序
如何使用 VS 2022 编写 C 语言代码
-
step 1:打开 VS 2022。
-
step 2:创建项目
点击“创建新项目(N)”→ 选“空项目”→ 点击“下一步(N)”→ 更改项目名称(建议用有意义的名字,不用中文和空格)、位置(代码位置自己管理,建文件夹,路径尽量不用中文,如Date (D) > Code > 2025)→ 点击“创建”。 若找不到或误关项目视图,点击“视图(V)”→“解决方案资源管理器(P)”。 -
step 3:创建源文件
源文件为.c,头文件为.h。
添加方式:鼠标右键点击“源文件”→“添加(D)”→“新建项(W)…”→ 选择“C++ 文件”→ 名称改为test.c(.c编译器按 C 语法编译,.cpp按 C++ 语法编译)。 -
step 4:写代码 有两种写法:
- 古老写法(不推荐):
void main() { } - 标准主函数写法:
#include <stdio.h> // “std”指 standard,“i”指 input,“o”指 output int main() // “int”指整型类型,“main()”等价于“main (void)”,指没有参数 { printf("hello C\n"); // printf 是库函数,用于打印,“\n”是换行 return 0; // “0”指整数,一种惯用写法 }
- 古老写法(不推荐):
-
step 5:运行
- 快捷键:
Ctrl + F5(若不行,尝试Fn + Ctrl + F5)。 - 点击“调试(D)”→“开始执行(不调试)(H)”。
- 快捷键:
6. main 函数
- C 语言中必须有
main函数,是程序入口,有且只有 1 个。 main函数最终会返回一个整型值,也是函数,即使项目有多个.c文件,也只能有一个main函数。
7. printf 和库函数
printf 是库函数,用于格式化输出。
常见格式符:
%zu:打印sizeof结果。%d:打印整数。%c:打印字符。%s:打印字符串。%f:打印float型浮点数。%lf:打印double型浮点数。
8. 关键字介绍
关键字有特殊意义,是 C 语言保留使用的。创建标识符时不能和关键字重复,且关键字不能自己创建。 C 语言的 32 个关键字:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。
9. 字符和 ASCII 编码
- 字符:如
'a'(单个字符)、"ABC"(字符串)。数据在计算机中以二进制形式存储和表示。 - ASCII 表:可查询。常见 ASCII 码值:
- 字符
A~Z:65 ~ 90。 - 字符
a~z:97 ~ 122。 - 数字字符
0`9`:4857。 - 换行
\n:10。 - 0~31 是不可打印字符,无法在屏幕上观察。
- 示例:
printf("%d\n", 'a'); // 输出 97 printf("%c\n", 97); // 输出 a - 打印 32 到 127 的 ASCII 码展示:
#include <stdio.h> int main() { int i = 0; for (i = 32; i <= 127; i++) { printf("%c ", i); } return 0; }
- 字符
10. 字符串和 \0
- 字符串以
\0作为结束标志。 - 示例:
#include <stdio.h> int main() // “char”是字符类型,数组是一组数据 { char arr1[] = "abcdef"; // 等价于 {'a','b','c','d','e','f','\0'} char arr2[] = {'a','b','c','d','e','f'}; // 无 '\0',打印可能出问题 printf("%s\n", arr1); printf("%s\n", arr2); return 0; }
11. 转义字符
转义字符有特殊作用,常见转义字符:
\?:防止?被解析为三字母词中的问号。\':表示单引号'。\":表示双引号"。\\:表示单反斜杠\。\a:警报(使电脑蜂响或闪烁)。\b:退格符(光标回退一个字符,但不删除)。\f:换页符(光标移到下一页,现在类似\t)。\n:换行符。 -\r:回车符(光标移到当前行开头)。\t:制表符(水平制表符,即 tab)。\v:垂直制表符(光标移至下一行同一列)。\ddd:ddd为 3 个十进制数字,表示八进制数(参考 ASCII 表),如\130表示X。\xdd:dd为 2 个十六进制数字,表示十六进制数(参考 ASCII 表),如\x35表示5。\0:终止符。
示例:
// \b 效果展示
#include <stdio.h>
int main()
{
printf("abcdef\bg");
getchar(); // 要获取一个字符
return 0;
}
// \ddd 与 \xdd 展示
printf("%c\n", '\130'); // 输出 X
printf("%c\n", '\x35'); // 输出 5
12. 语句和语句分类及转义字符练习
(1) 转义字符练习
#include <stdio.h>
#include <string.h> // strlen 是库函数,即 string.length
//用于求字符串长度,统计 '\0' 之前的字符个数
int main()
{
int len = strlen("abcdef");// 等价于 {'a','b','c','d','e','f','\0'}
printf("%d\n", len); // 运行输出 6
return 0;
}
题目
#include <stdio.h>
#include <string.h>
int main()
{
int len = strlen("c:\\test\\\129\\test.c"); // 运行输出 14
printf("%d\n", len);
return 0;
}
进制说明:
- 10 进制:由 0 - 9 数字组成。
- 16 进制:由 0 - 9、a - f 组成。
- 8 进制:由 0 - 7 组成。
- 2 进制:由 0、1 组成。
(2) 语句和语句分类
简单理解:一个分号隔开的就是一条语句。
- 空语句:只需要一个分号,不做任何事情,如
;。 - 表达式语句:在表达式后面加分号,如
3 + 5;。 - 函数调用语句:如
printf("hehe");。 - 复合语句:代码块,成对括号里的内容,函数、循环等大括号内的都是。
- 控制语句:
- C 语言支持三种结构:顺序结构、选择结构(
if、switch)、循环结构(for、while、do while)。 - C 语言是程序化设计语言。
- C 语言的九种控制语句:
- 条件判断(分支)语句:
if语句、switch语句。 - 循环执行语句:
do while语句、while语句、for语句。 - 转向语句:
break语句、goto语句、continue语句、return语句。
- 条件判断(分支)语句:
- C 语言支持三种结构:顺序结构、选择结构(
13. 注释
- C 语言注释风格:
/*至*/为注释内容(不能嵌套);
C++ 注释风格://后的内容为注释内容。 - 快捷键:
Ctrl + K + C注释选中行;Ctrl + K + U取消注释选中行。 - 编译器会将注释替换为空格
总结:
本文为 C 语言入门第一讲,围绕 C 语言常见概念展开,先阐述 C 语言作为计算机语言的定位,回顾其为 Unix 系统开发而生的历史与标准化进程。接着讲解编译链接流程,对比不同编译器及集成开发环境,重点介绍 VS 2022 创建项目、编写首个 C 程序的步骤。还深入解析main函数、printf等库函数、关键字、字符与 ASCII 编码、字符串与\0、转义字符、语句分类以及注释等核心概念,帮助读者快速入门 C 语言。
更多推荐
所有评论(0)