D1—C语言的常见概念
本文系统介绍了C语言的核心概念,从历史背景到实际应用。主要内容包括:C语言与Unix系统的共生关系;编译过程的四个关键步骤;VS2022开发环境的选择建议;main函数的三大铁律;第一个C程序示例及printf解析;32个关键字的分类说明;ASCII编码原理与应用;字符串的\0终止符特性;14种转义字符详解;五种语句类型区分;注释的规范写法;三大程序结构与九种控制语句。文章强调理论与实践结合,推荐
引言
“在编程学习的路上,记忆有时会‘打退堂鼓’,遗忘似乎成了常态。写博客——这不仅是为了对抗遗忘,更是为了更深刻地理解。每次梳理笔记、解释概念,其实都是对自己认知的‘再调试’。正如古语‘教学相长’,教会别人之前,往往自己要先通透;而在书写的过程中,那些模糊的知识点也渐渐清晰起来。
我想如果我早一点养成这样的习惯,或许我不会在‘学了忘、忘了再学’中循环。所以这次,我决定从起点开始,用文字重建自己的知识体系——既为温故,更为知新。”
目录
“写注释一定程度上反应了程序作者的素养”,这句话让我重新审视自己的编码习惯。良好的注释是代码可维护性的基石。
一、C语言的历史定位:从Unix诞生的系统级语言
-
起源:1972年,贝尔实验室的丹尼斯·里奇在B语言基础上设计,最初用于重写Unix操作系统。
-
核心关系:C语言与Unix系统相互成就。Unix的普及推动了C的广泛应用,C的可移植性使Unix得以移植到不同机器。
-
现状:至今仍在系统编程、嵌入式等领域占据主导地位,在TIOBE等语言排行榜中长期位列前三。
二、理解编译的本质:从源代码到可执行文件的旅程
C语言是⼀门编译型计算机语言,C语言源代码都是文本文件,文本文件本⾝无法执⾏,必须通过编译器翻译和链接器的链接,生成⼆进制的可执行⽂件,可执行文件才能执行。 C语言代码是放在 .c 为后缀的⽂件中的,要得到最终运行的可执行程序,中间要经过编译和链接2个过程。
核心步骤:
.c源文件 -> 编译器编译 -> .obj目标文件 -> 链接器链接(整合库文件等) -> .exe可执行文件

三、开发环境选择VS2022
对几种主流IDE进行对比:
-
VS2022 :功能强大、生态完善、企业主流、安装便捷。缺点是体积庞大。
-
其他选择:XCode (mac)、Clion (跨平台、付费)、Dev C++ (轻量但老旧)。
新手建议:对于Windows用户,VS2022社区版是平衡了学习曲线、功能与未来就业需求的最佳起点。其“一键安装”特性让你能将精力集中在语言本身,而非环境配置上。
四、程序的心脏:main函数及其铁律
这是任何C程序的唯一入口:
int main() {
// 程序从此开始执行
return 0; // 向操作系统返回0,表示正常结束
}
必须铭记的三个铁律:
-
一个程序有且仅有一个main函数。
-
即使项目有多个.c文件,也只能有一个文件包含main函数。
-
main函数的
int返回类型与最后的return 0;必须前后呼应。
常见错误备忘录:
-
main误写为mian -
遗漏
main后的括号() -
误用中文符号(
;,“”),在编译器上很明显就可以看出,同时语法错误编译器会有下划线提示 -
语句结尾遗漏分号
;
五、第一个C语言程序及对printf的解释
#include<stdio.h>
int main()
{
printf("The first C project");
return 0;
}
printf 是大多数C程序员用的第一个函数:
-
它是一个标准库函数,功能是将格式化数据打印到标准输出(通常是屏幕)。
-
怎么使用:必须包含其声明所在的头文件
#include <stdio.h>。
库函数背后的设计哲学:
C语言通过标准库将常用功能(如输入输出、数学计算、字符串操作)标准化。这避免了程序员重复造轮子,体现了“站在巨人肩膀上”的工程思想。理解这一点,就能明白为什么学习C语言不仅要学语法,还要熟悉其标准库。
想要提前了解参考下面的链接:
https://cplusplus.com/reference/clibrary/
六、代码的“建筑材料”:关键字与标识符
C语言的32个关键字如下:

七、字符的数字化身:ASCII编码
#include<stdio.h>
int main()
{
char ch;
scanf("%c", &ch);//输入一个字符
if (ch >= 97 && ch <= 122)//判断是否为小写字母
printf("%c", ch - 32);//利用ch-32,将小写转换为大写
else
printf("%c", ch);
return 0;
}
#include<stdio.h>
int main()
{
int ch =7;
printf("%c", ch);
return 0;
}
运行这串代码会发现有响铃声。
八、字符串与隐藏的终结者:\0
#include<stdio.h>
int main()
{
char arr1[] = { 'a', 'b', 'c' }; // 字符数组,无\0,用%s打印会导致越界访问随机值
char arr2[] = "abc"; // 字符串,实际存储为 {'a', 'b', 'c', '\0'}
printf("%s\n", arr1);
printf("%s\n", arr2);
}
核心概念:C语言中,字符串总是以空字符 '\0'(ASCII值为0)作为结束标志。所有标准字符串处理函数(如strlen, strcpy)都依赖这个约定。
九、改变含义的符号:转义字符

-
其中常用转义字符:
-
\n:换行 -
\t:制表符 -
\\:表示一个反斜杠本身 -
\":在字符串内表示双引号
-
-
高级形式:
-
\ddd:八进制ASCII码(如\130表示'X') -
\xdd:十六进制ASCII码(如\x30表示'0')
-
十、程序的句子:语句的五种形态
C程序由语句构成,文档(P16-P18)将其分为五类:
-
空语句:只有一个分号
;。 -
表达式语句:表达式后加
;,如b = a + 5;。 -
函数调用语句:调用函数后加
;,如printf("hehe");。 -
复合语句(代码块):由
{}包裹的多条语句,被视为一个逻辑单元。 -
控制语句:控制程序流向(如
if,for,break),是后续学习的重点。
这种分类帮助我们从更结构化的视角看待代码,而非一连串随意的指令。
十一、为代码注入灵魂:注释的艺术
-
目的:给人(自己或他人)看,解释代码意图,而非描述代码本身。
-
两种形式:
-
多行注释:
/* 注释内容 */,不支持嵌套。 -
单行注释:
// 注释内容(C99标准引入)。
-
-
重要原则:注释不能写在字符串字面量内(如
"//"就是字符串的一部分)。
“写注释一定程度上反应了程序作者的素养”,这句话让我重新审视自己的编码习惯。良好的注释是代码可维护性的基石。
关于注释最近网上有一个题目:
#include<stdio.h>
int main()
{
int a = 0, b = 0;
a = 10; /*a赋值*/
b = 20; /*给b赋值*/
printf("%d", a + b);
return 0;
}
#include<stdio.h>
int main()
{
int a = 0, b = 0;
a = 10; /*a赋值
b = 20; 给b赋值*/
printf("%d", a + b);
return 0;
}
你有没有发现什么不同呢?运行看看结果怎么样。
十二、构建思维的框架:三大程序结构与九种控制语句
C语言支持:
-
三大结构:顺序、选择(分支)、循环。
-
九种控制语句:
-
分支:
if,switch -
循环:
do while,while,for -
转向:
break,goto,continue,return
-
总结
以上是C语言的常见概念,希望大家看完之后能试着自己在编译器上敲一敲,试一试。同时推荐几个初学者可以尝试刷题的网站,编程语言的学习不应该只有语言,也需要进行一定的刷题。
牛客网:https://www.nowcoder.com/ta/beginner-programmers-v1#:~:text
蓝桥云课: 题库 - 蓝桥云课
更多推荐


所有评论(0)