C 语言学习笔记(一):最最基础的入门
学习 C 语言有一段时间了,一直都是跟着视频学、跟着敲代码,但总觉得知识在脑子里是飘着的,不扎实。最近开始写博客,一方面是想把学习过程记录下来,另一方面也是通过输出倒逼自己真正理解 —— 能讲明白、写清楚,才算真的学会。
这篇是第一章,只写最基础的入门内容,不贪多,慢慢更。
一、为什么要先学好 C 语言
很多人一开始就想学 Python、Java 那种看起来更 “有用” 的语言,但我还是决定先从 C 语言学起。C 语言更接近底层,逻辑严谨,语法规范,把它学扎实了,以后再学其他语言会轻松很多。而且像数据结构、计算机基础、网络安全这些方向,C 语言都是绕不开的基础。不急着速成,先把地基打牢。
二、C 语言是什么?
简单来说,C 语言是一门面向过程的、底层的、高效的编程语言。它诞生于 1972 年,由贝尔实验室的丹尼斯・里奇(Dennis Ritchie)为了开发 UNIX 操作系统而创造。
- 特点:执行效率极高、可移植性强、能直接操作内存和硬件
- 地位:被称为 “编程语言之母”,很多现代语言(C++、Java、Python 底层等)都源于它
- 应用:操作系统、嵌入式开发、游戏引擎、驱动程序等
- 对性能要求极高的领域
三、C 语言的历史和辉煌
1972 年:诞生于贝尔实验室,用于重写 UNIX 系统
1978 年:《C 程序设计语言》出版,成为事实上的标准
1989 年:ANSI C 标准发布(C89)
1999 年:C99 标准发布,增加了更多现代特性
至今:依然是工业界最核心的语言之一,Linux 内核、数据库、嵌入式设备都离不开它
可以说,没有 C 语言,就没有今天的计算机世界。
四、VS 项目和源文件、头文件介绍
在 VS 中,我们的代码会被组织成项目(Project):
- 源文件(.c):存放具体的代码实现,比如函数定义、变量声明
- 头文件(.h):存放函数声明、宏定义、结构体声明等,用于代码复用和模块化
- 项目文件(.vcxproj):记录项目的配置信息,比如编译选项、包含的文件
一个完整的 C 程序,通常由多个.c和.h文件组成,最后编译链接成可执行文件。
五、第一个 C 语言程序
话不多说,直接上代码,这是我们的第一个程序:
#include <stdio.h>
int main()
{
printf("Hello, C Language!\n");
return 0;
}
运行后,控制台会输出:Hello, C Language!
简单拆解一下:
#include <stdio.h>:引入标准输入输出库,让我们能使用printf函数
int main():程序的入口函数,所有 C 程序都从这里开始执行
printf(...):向控制台打印内容
return 0:告诉操作系统程序正常结束
六、main 函数
main函数是 C 程序的唯一入口,操作系统只会从这里开始执行代码。
标准写法有两种:
// 写法1(推荐,无参数)
int main(void)
{
return 0;
}
// 写法2(带命令行参数)
int main(int argc, char* argv[])
{
return 0;
}
- 返回值
int:表示程序的退出状态,0代表正常结束,非0代表异常 - 必须有且仅有一个
main函数,否则程序无法运行
七、printf 和库函数
printf是 C 标准库(Standard Library)中的一个函数,作用是格式化输出。
- 库函数:别人写好的、可以直接拿来用的功能代码,比如输入输出、数学计算、字符串处理等
- 头文件:使用库函数前,必须用
#include引入对应的头文件,比如#include <stdio.h>
printf("数字:%d,字符:%c,字符串:%s\n", 100, 'A', "Hello");
输出:数字:100,字符:A,字符串:Hello
八、关键字介绍
C 语言中有一些保留字(关键字),它们有特殊的语法含义,不能用来做变量名或函数名。
比如:int、char、if、else、for、while、return等。
特点:全部小写,在编译器中有固定意义
注意:自定义标识符时,绝对不能和关键字重名,否则会编译报错
九、字符和 ASCII 编码
在计算机中,字符(比如'A'、'5'、'!')都是以数字形式存储的,这个数字就是 ASCII 码。
ASCII 码:美国信息交换标准代码,用 0~127 的整数表示常见字符
示例:
'A' → 65
'a' → 97
'0' → 48
'\n' → 10(换行符)
这也是为什么 C 语言中字符类型char本质上是一个 1 字节的整数。
十、字符串和\0
字符串是由多个字符组成的序列,比如"Hello World"。
在 C 语言中,字符串是以字符数组的形式存储的,并且必须以 ** 空字符\0** 作为结束标志。
char str[] = "Hello";
// 实际存储:H e l l o \0
注意:"Hello"看起来是 5 个字符,但在内存中占 6 个字节(最后一个是\0)
\0:ASCII 码为 0,用来告诉函数 “字符串到这里结束了”
十一、转义字符
转义字符以\开头,用来表示那些无法直接输入的特殊字符:
| 转义字符 | 含义 |
|---|---|
\n |
换行 |
\t |
水平制表符 |
\\ |
反斜杠本身 |
\" |
双引号 |
\' |
单引号 |
\0 |
空字符(字符串结束) |
printf("Hello\tWorld\n");
// 输出:Hello World(中间是制表符,最后换行)
十二、语句和语句分类
C 语言的代码是由语句组成的,每个语句以分号;结尾。
常见语句分类:
表达式语句:比如a = 10;、printf("...");
控制语句:比如if-else、for、while,用来控制程序流程
复合语句:用{}包裹的多个语句,比如函数体、循环体
空语句:只有一个分号;,表示 “什么都不做”
十四、注释是什么?为什么写注释?
十三、注释是什么?为什么写注释?
注释是写给人看的,编译器会完全忽略注释内容。
C 语言有两种注释方式:
// 单行注释(C99标准引入)
/*
多行注释
可以跨越多行
*/
为什么要写注释?
方便自己以后回顾代码
方便别人理解你的代码逻辑
复杂逻辑、特殊处理必须加注释,这是专业程序员的基本素养
好的代码应该是 “自文档化” 的,但必要的注释永远是加分项。
十四、总结
这一篇我们把 C 语言的基础概念过了一遍,从语言本身到第一个程序,再到字符、字符串、注释这些细节,算是正式入门了。
其实这些内容我之前跟着视频敲过很多遍,但直到现在坐下来写博客,才发现很多细节自己之前并没有完全吃透。比如字符串末尾的\0,以前只是知道要加,但这次才真正想明白 “为什么必须要有”。
这也印证了我开头的想法:输出才是最好的学习方式。
下一篇我们会开始学习数据类型和变量,这是编写更复杂程序的基础。
持续更新 C 语言学习笔记,欢迎关注点赞收藏~一起打好基础,慢慢进步。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)