
提到
语言这个词语,自然会想到的是像英语、汉语等,这样的自然语言,因为它是人和人交换信息不可缺少的工具。 而今天计算机遍布了我们生活的每一个角落,除了与人相互交流之外,我们也必须学会和计算机交流。 那用什么的什么样的方式和计算机做最直接的交流呢? 人们自然想到的是最古老也最方便的方式一一语言,而 C语言就是人和计算机交流的一种语言。 语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与。 这是语言最重要的功能:
自然语言是人和人交流的工具,C语言是人和机器交流的工具。
只是,人可以不听另外一个人,但是,计算机是无条件服从。
语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。


优点:
执行速度快
非常灵活
底层访问
广泛应用
丰富的库函数
缺点:
内存管理复杂性 开发效率相对较低 编写代码容易出错 缺乏现代编程特性 
1.
系统编程
Unix、Linux和Windows操作系统的核心部分都是用C语言编写的 2.嵌入式系统
3.编译器与解释器开发
4.游戏开发
5.网络编程
6.科学计算与数值分析
7.数据库系统
8.工具开发
9.图形用户界面(GUI)开发
10 .跨平台开发
总结:
C生万物
C语言仅有
32个关键字,9 种控制语句,34 种运算符,却能完成无数的功能:



#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}C 语言的源代码文件是一个普通的文本文件,但
扩展名必须是.c
编辑器(如 vim、记事本)是指我们用来写程序(编辑代码)的工具。 而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的 转化工具。 也就是说:我们用编辑器编写的程序,由编译器编译后才可以运行
编译器: 将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
gcc (GNU Compiler Collection,GNU 编译器套件),是由 GNU开发的编程语言编译器。
C语言编译命令模板:
gcc [-option] ... <filename>C++ 编译命令模板:g++ [-option] ... <filename>
命令、选项和源文件之间使用空格分隔。两种运行hello world.c源代码文件的方式:
借助VS编辑工具运行
借助记事本、gcc编译工具运行






函数介绍:system:用于在程序中执行操作系统命令。
<stdlib.h>头文件中 当调用system函数并传入一个有效的命令字符串作为参数时:
这个系统命令的执行方式就好像在操作系统的命令提示符(如:Windows 的 CMD 或 Linux 的终端)中输入该命令一样。
函数原型:
int system(const char *command);command:要执行的命令字符串。 "ls -l"(在 Linux 下列出当前目录的文件)"dir"(在 Windows 下列出当前目录的文件)system 函数可以执行的命令字符串取决于操作系统的命令行解释器。
cmd.exe 或 Linux 的 /bin/shWindows 和 Linux 操作系统上的一些常见的命令字符串:
Windows 系统中的常见命令:
1 .系统命令
cls:清空控制台窗口。
system("cls");pause:暂停程序执行,等待用户按下任意键继续。
system("pause");exit:退出当前命令提示符窗口。
system("exit");2 .文件操作
dir:列出当前目录的文件和子目录。
system("dir");cd:切换当前目录。
system("cd C:\\Users");mkdir:创建新目录。
system("mkdir new_folder");del:删除文件。
system("del file.txt");copy:复制文件。
system("copy file.txt new_file.txt");move:移动文件或重命名文件。
system("move file.txt C:\\new_location\\file.txt");3.程序启动
calc:启动计算器。
system("calc");notepad:启动记事本。
system("notepad");mspaint:启动画图程序。
system("mspaint");cmd:启动新的命令提示符窗口。
system("cmd");4 .网络操作
ping:测试网络连接。
system("ping www.google.com");ipconfig:显示网络配置信息。
system("ipconfig");5.系统信息
systeminfo:显示系统信息。
system("systeminfo");tasklist:显示当前运行的进程。
system("tasklist");Linux 系统中的常见命令:
1.系统命令
clear:清空终端窗口。
system("clear");sleep:暂停程序执行一段时间。
system("sleep 5"); // 暂停 5 秒2.文件操作
ls:列出当前目录的文件和子目录。
system("ls -l");cd:切换当前目录。
system("cd /home/user");mkdir:创建新目录。
system("mkdir new_folder");rm:删除文件或目录。
system("rm file.txt");cp:复制文件。
system("cp file.txt new_file.txt");mv:移动文件或重命名文件。
system("mv file.txt /new_location/file.txt");3.程序启动
gedit:启动文本编辑器(GNOME 桌面环境)。
system("gedit file.txt");gnome-calculator:启动计算器(GNOME 桌面环境)。
system("gnome-calculator");4.网络操作
ping:测试网络连接。
system("ping -c 4 www.google.com");ifconfig:显示网络配置信息。
system("ifconfig");5.系统信息
uname:显示系统信息。
system("uname -a");ps:显示当前运行的进程。
system("ps aux");
函数返回值:
command 是 NULL,system 会检查系统中是否存在命令行解释器: 0command 不是 NULL,system 会返回命令的执行状态: -1函数使用:
#include <stdio.h>
#include <stdlib.h>
int main()
{
system("dir");
return 0;
}解决Microsoft Visual Studio提示窗一闪而过的方法:
return 0;之前添加system(“pause”);函数调用。项目上 —> 右键 —> 属性 —> 配置属性 —> 连接器 —> 系统 —> 子系统 —> 在下拉框中选择控制台 (/SUBSYSTEM:CONSOLE) —> 应用 —> 确定
选项含义:
选项 | 含义 |
|---|---|
-E | 只进行预处理 |
-S | 只进行预处理和编译 |
-c | 只进行预处理、编译和汇编 |
-o filename | 指定生成的输出文件名为 filename |
文件后缀含义:
文件后缀 | 含义 |
|---|---|
.c | C语言文件 |
.i | 预处理后的预处理文件 |
.s | 编译后的汇编文件 |
.o | 汇编后的目标文件 |
gcc编译4步骤:
原始的文件 | 操 作 | 选 项 | 生成的文件的格式 | 生成的文件的名称 |
|---|---|---|---|---|
源文件 | 预处理 | -E | .i | 预处理文件 |
预处理文件 | 编译 | -S | .s | 汇编文件 |
汇编文件 | 汇编 | -c | .o | 目标文件 |
目标文件 | 链接 | -o | .exe | 可执行文件 |
预处理:gcc -E xxx.c -o xxx.i
(不检查语法错误)#define 定义的宏替换为对应的值或代码。#if、#ifdef、#ifndef、#else、#elif、#endif 等指令,来决定哪些代码需要保留,哪些代码需要忽略。 编译:gcc -S xxx.i -o xxx.s
(整个编译4步骤中最耗时的过程) 汇编:gcc -c xxx.s -o xxx.o
链接:gcc xxx.o -o xxx.exe
预处理:
gcc -E hello.c -o hello.i编 译:gcc -S hello.i -o hello.s汇 编:gcc -c hello.s -o hello.o链 接:gcc hello.o -o hello.exe


gcc hello.c -o hello.exe(也是经过了:预处理、编译、汇编、链接过程的)


特性 | 32 位系统 | 64 位系统 |
|---|---|---|
数据总线宽度 | 32 位 | 64 位 |
内存寻址能力 | 最大支持4GB的内存地址空间 | 理论上 16 EB,实际支持远大于 4 GB |
寄存器大小 | 32 位 | 64 位 |
性能 | 适合于较小的数据集和简单的任务 | 适合于复杂任务和高性能计算 |
软件兼容性 | 只能运行 32 位软件 | 可以运行 32 位和 64 位软件 |
操作系统支持 | 只能安装 32 位操作系统 | 可以安装 32 位或 64 位操作系统 |
文件系统 | 不支持超大文件(大于4GB的文件) | 支持超大文件(TB 级别的文件) |
安全性 | 较低 | 较高 |
应用场景 | 适合旧设备和轻量级应用程序 | 适合高性能计算和大型应用程序 |
硬件要求 | 对硬件要求较低 | 需要支持 64 位的 CPU 和足够内存 |
数据总线宽度
内存寻址能力
字节)的内存地址空间。
单位换算表: 单位名称缩写换算关系位(Bit)b1 Byte = 8 bits字节(Byte)B1 KB = 1024 Bytes千字节(Kilobyte)KB1 MB = 1024 KB兆字节(Megabyte)MB1 GB = 1024 MB吉字节(Gigabyte)GB1 TB = 1024 GB太字节(Terabyte)TB1 PB = 1024 TB拍字节(Petabyte)PB1 EB = 1024 PB艾字节(Exabyte)EB1 ZB = 1024 EB泽字节(Zettabyte)ZB1 YB = 1024 ZB尧字节(Yottabyte)YB目前最大的数据存储单位
计算机中最小的数据单位计算机中存储的基本单位提示:
16 EB = 16,777,216 TB16 EB = 17,179,869,184 GB8位 | 16位 | 32位 | 64位 |
|---|---|---|---|
A | AX | EAX | RAX |
B | BX | EBX | RBX |
C | CX | ECX | RCX |
D | DX | EDX | RDX |
特性 | 寄存器 | 缓存 | 内存 |
|---|---|---|---|
位置 | CPU 内部 | CPU 和内存之间 | CPU 外部 |
速度 | 最快(1 个时钟周期) | 较快(几到几十个时钟周期) | 较慢(几十到几百个时钟周期) |
容量 | 最小(几十到几百字节) | 适中(几 KB 到几十 MB) | 最大(几 GB 到几十 GB) |
功能 | 存储CPU当前处理的数据 | 存储CPU近期可能使用的数据 | 存储运行中的程序和数据 |
管理 | 硬件直接管理 | 硬件自动管理 | 操作系统管理 |
寄存器(Register)
汇编语言或编译器间接使用。缓存(Cache)
内存(Memory,通常指 RAM)
编程语言(如 C、C++)直接操作。 寄存器、缓存、内存
时间局部性:最近访问的数据很可能再次被访问。空间局部性:访问某个数据时,其附近的数据也可能被访问。 寄存器、缓存和内存共同构成了 计算机的存储层次结构,通过协作实现高效的数据存储和访问
#include <stdio.h>
int main()
{
//定义整型变量a, b, c
int a;
int b;
int c;
__asm
{
mov a, 3 //3的值放在a对应内存的位置
mov b, 4 //4的值放在b对应内存的位置
mov eax, a //把a内存的值放在eax寄存器
add eax, b //eax和b相加,结果放在eax
mov c, eax //eax的值放在c中
}
printf("%d\n", c);//把c的值输出
return 0;//成功完成
}#include <stdio.h>
int main()
{
//定义整型变量a, b, c
int a;
int b;
int c;
a = 3;
b = 4;
c = a + b;
printf("%d\n", c);//把c的值输出
return 0;//成功完成
}



Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。
Visual Studio:一个集成开发环境(IDE)
1. 代码编辑快捷键
快捷键 | 功能描述 |
|---|---|
Ctrl + K + C | 注释选中代码 |
Ctrl + K + U | 取消注释选中代码 |
Ctrl + K + D | 格式化整个文档 |
Ctrl + K + F | 格式化选中代码 |
Ctrl + K + S | 插入代码片段 |
Ctrl + Enter | 在当前行上方插入新行 |
Ctrl + Shift + Enter | 在当前行下方插入新行 |
Ctrl + M + O | 折叠所有代码块 |
Ctrl + M + L | 展开所有代码块 |
Ctrl + M + M | 切换当前代码块的折叠状态 |
Ctrl + Shift + V | 循环粘贴剪贴板历史记录 |
2. 导航快捷键
快捷键 | 功能描述 |
|---|---|
F12 | 转到定义(在选中的前提下) |
Ctrl + - | 导航回退(返回上一个光标位置) |
Ctrl + Shift + - | 导航前进 |
Ctrl + T | 快速查找所有符号(在选中的前提下) |
Ctrl + G | 跳转到指定行号 |
Ctrl + F12 | 转到实现(适用于接口和抽象方法)(在选中的前提下) |
Alt + F12 | 查看定义(Peek Definition)(在选中的前提下) |
3. 调试快捷键
快捷键 | 功能描述 |
|---|---|
F5 | 启动调试 |
Shift + F5 | 停止调试 |
Ctrl + Shift + F5 | 重启调试 |
F9 | 设置断点 |
F10 | 逐过程调试(不进入函数内部) |
F11 | 逐语句调试(进入函数内部) |
Shift + F11 | 跳出当前函数 |
Ctrl + F5 | 执行但不调试 |
Ctrl + Shift + B | 编译但不执行 |
Qt Creator:一个跨平台的集成开发环境(IDE)
Qt :一个强大的 C++ 框架。
快捷键 | 功能描述 |
|---|---|
Ctrl + / | 注释/取消注释 |
Ctrl + I | 自动格式化代码 |
Alt + Enter | 自动完成类函数定义 |
F4 | 在头文件和源文件之间切换 |
F9 | 设置断点 |
F5 | 启动调试 |
F10 | 逐过程调试(不进入函数内部) |
F11 | 逐语句调试(进入函数内部) |