第一讲:C 语言常见概念

目录

  1. C 语言是什么
  2. C 语言的历史和辉煌
  3. 编译器的选择 VS 2022
  4. VS 项目和源文件、头文件介绍
  5. 第一个 C 语言程序
  6. main 函数
  7. printf 和库函数
  8. 关键字介绍
  9. 字符和 ASCII 编码
  10. 字符串和 \0
  11. 转义字符
  12. 语句和语句分类
  13. 注释

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.cadd.cxxx.c → 编译器(cl.exe)→ test.objadd.objxxx.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 个关键字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile

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:垂直制表符(光标移至下一行同一列)。
  • \dddddd 为 3 个十进制数字,表示八进制数(参考 ASCII 表),如 \130 表示 X
  • \xdddd 为 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 语言支持三种结构:顺序结构、选择结构(ifswitch)、循环结构(forwhiledo while)。
    • C 语言是程序化设计语言。
    • C 语言的九种控制语句:
      • 条件判断(分支)语句:if 语句、switch 语句。
      • 循环执行语句:do while 语句、while 语句、for 语句。
      • 转向语句:break 语句、goto 语句、continue 语句、return 语句。

13. 注释

  • C 语言注释风格:/**/ 为注释内容(不能嵌套);
    C++ 注释风格:// 后的内容为注释内容。
  • 快捷键:Ctrl + K + C 注释选中行;Ctrl + K + U 取消注释选中行。
  • 编译器会将注释替换为空格

总结:

本文为 C 语言入门第一讲,围绕 C 语言常见概念展开,先阐述 C 语言作为计算机语言的定位,回顾其为 Unix 系统开发而生的历史与标准化进程。接着讲解编译链接流程,对比不同编译器及集成开发环境,重点介绍 VS 2022 创建项目、编写首个 C 程序的步骤。还深入解析main函数、printf等库函数、关键字、字符与 ASCII 编码、字符串与\0、转义字符、语句分类以及注释等核心概念,帮助读者快速入门 C 语言。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐