本片核心知识:计算机核心组成、编译链接流程、头文件引用、VS 项目结构与快捷键、进制 / 码制 / 字符编码、基础数据类型、数据溢出、输入输出操作
一、计算机组成与编程基础
概念
电脑由主机和外设组成,编程核心关注CPU、内存、硬盘三大部件。
特性
-
CPU :运算中心,负责数据处理,不存储数据。
-
内存 :临时存储数据,CPU 读取速度远快于硬盘;内存不足时启用虚拟内存(借用硬盘空间,速度变慢)。
-
硬盘:永久存储数据,分机械硬盘(转速决定速度)和固态硬盘(读写更快);程序运行时需从硬盘加载到内存。
-
C/C++ 优势 :可直接操作内存。
二、编译与运行流程
概念
源代码需经编译、链接生成可执行文件,才能被计算机运行。
特性
-
源代码:编辑器编写的源文件(.c/.cpp)。
-
编译 :源代码转二进制,Windows 生成OBJ 中间文件(1 个源文件对应 1 个 OBJ)。
-
链接 :合并多个 OBJ 文件 + 库文件,生成EXE 可执行文件。
-
IDE:集成编辑器、编译器、链接器、调试器(如 VS)。
代码示例(简单流程示意)
// 1. 编写源代码(main.cpp)
#include <iostream>
int main() {
return 0;
}
// 2. 编译:main.cpp → main.obj
// 3. 链接:main.obj + 库文件 → main.exe
// 4. 运行:双击main.exe
三、头文件与引用
概念
头文件(.h)用于共享代码内容,通过#include引入源文件。
特性
-
预处理命令 :
#include,本质是将头文件内容复制到引用位置。 -
头文件区别 :C 语言头文件(如
stdio.h)必须加.h;C++ 标准头文件(如iostream)可省略.h。 -
引用符号
<>:优先查系统目录,用于系统头文件。"":先查项目目录,再查系统目录,用于自定义头文件。
代码示例
// 引用系统头文件(尖括号)
#include <iostream>
// 引用C语言头文件(加.h)
#include <stdio.h>
// 引用自定义头文件(双引号)
#include "myheader.h"
四、项目结构
概念
C/C++ 程序需唯一入口,VS 通过解决方案和项目管理代码。
特性
-
入口函数 :
main(),程序必须从这里执行,有且仅有一个。 -
VS 结构 :1 个解决方案含多个项目;需运行的项目设为启动项目(名称加粗)。
代码示例(主函数)
#include <iostream>
int main() { // 唯一入口
std::cout << "程序运行" << std::endl;
return 0;
}
五、VS 常用快捷键
概念
提升开发效率的常用操作快捷键。
特性
-
运行调试
Ctrl+F5:运行(不调试)F5:开始调试F10:逐过程调试(跳过函数)F11:逐语句调试(进入函数) -
代码操作
断点:代码左侧竖条点击
F12:转到定义;Alt+F12:查看定义注释:
Ctrl+K→Ctrl+C;取消注释:Ctrl+K→Ctrl+U -
注释格式 :单行
//;多行/* ... */
六、进制转换
概念
以二进制为桥梁,实现十进制、八进制、十六进制互转。
特性
-
核心数列:2 的幂(1、2、4、8、16、32、64、128)。
-
转换规则
十进制→二进制:拆分为 2 的幂之和。
二进制→八进制:右往左每 3 位一组,不足补 0。
二进制→十六进制:右往左每 4 位一组,不足补 0。
-
标识 :八进制以
0开头;十六进制以0x/0X开头。
示例
- 十进制 168 → 二进制
10101000→ 八进制0250→ 十六进制0xA8
七、码制转换
概念
整数(正 / 负 / 零)在计算机中以补码存储,涉及原码、反码、补码。
特性
-
正数 / 无符号数 :原码、反码、补码三码合一。
-
负数
原码:符号位为 1,其余为真值二进制。
反码:符号位不变,其余位按位取反。
补码:反码 + 1;补码求原码等价于再求一次补码。
-
char 类型 :1 字节(8 位);有符号范围
-128~127,无符号0~255。
示例
- 有符号 char:
10000000→ -128;01111111→ 127
八、字符编码
概念
给字符分配唯一二进制编号(如 ASCII),电脑存储字符实际存编码二进制。
特性
-
ASCII 关键值
数字
0~9:48~57大写
A~Z:65~90小写
a~z:97~122 -
字符集:编码规范集合(类似密码本)。
代码示例
#include <iostream>
int main() {
char c = 'A';
std::cout << (int)c; // 输出65(A的ASCII值)
return 0;
}
九、数据类型
概念
定义变量存储数据的类型,决定内存空间和取值范围。
特性
-
基本类型
类型 大小 说明 void - 空类型 int 4 字节 整型 short 2 字节 短整型 long 8 字节 长整型 float 4 字节 单精度浮点 double 8 字节 双精度浮点 char 1 字节 字符型 bool 1 字节 布尔型(C++ 独有,true/false) -
修饰符 :
signed(默认,可省略)、unsigned、short、long。 -
变量初始化 / 赋值 :初始化(定义时赋值)、赋值(定义后赋值);未初始化变量为内存残留值(如
0xCC)。 -
sizeof:求类型 / 变量占用内存大小。
代码示例
#include <iostream>
int main() {
int a = 0; // 定义并初始化
double b;
b = 3.14; // 先定义后赋值
std::cout << sizeof(int); // 输出4
return 0;
}
十、char 类型详解
概念
1 字节字符型,可存字符或整数,区分字符与字符串。
特性
-
赋值方式:单引号字符、整数、转义字符。
-
字符 vs 字符串
字符
'A':1 字节,单引号。字符串
"A":2 字节(末尾自动补\0结束符),双引号。 -
转义字符 :
\开头,如\n(换行)、\t(制表符)、\'(单引号)、\\(反斜杠)、\x41(十六进制字符)。
代码示例
#include <iostream>
int main() {
char c1 = 'A';
char c2 = 65;
char c3 = '\n';
std::cout << c1 << c2 << c3;
return 0;
}
十一、数据溢出
概念
变量存储数据超出类型取值范围,自动调整数值。
特性
-
溢出规则:当前值 ± 范围大小,直至落在范围内(如 char 存 128 → -128)。
-
溢出时机 :存储时溢出,整数运算默认 int(4 字节),运算过程不溢出。
-
类型提升:运算时自动向范围大、精度高的类型转换(如 int×double→double)。
-
float 后缀 :小数默认 double,float 需加
f/F(如3.14f)。
代码示例
#include <iostream>
int main() {
char c = 128; // 溢出
std::cout << (int)c; // 输出-128
return 0;
}
十二、输入输出
概念
C 语言用printf/scanf,C++ 用cout/cin实现数据输入输出。
特性
1. C 语言:printf(输出)
-
占位符:
%d(int)、%f(float/double)、%c(char)、%s(字符串)、%o(八进制)、%x(十六进制)。 -
格式控制:
%.3f(保留 3 位小数)、%4.2f(总宽 4 位,2 位小数)、%-4.2f(左对齐)。
2. C 语言:scanf(输入)
- 需加
&取地址符;格式需与输入严格匹配;VS 新版可用scanf_s替代。
3. C++:cout(输出)
- 头文件
<iostream>,需std命名空间;endl换行并清空缓冲区。
4. C++:cin(输入)
- 无需格式符、无需取地址符;空格 / 回车分隔输入,更便捷。
代码示例
// C语言输入输出
#include <stdio.h>
int main() {
int a;
scanf("%d", &a);
printf("值:%d", a);
return 0;
}
// C++输入输出
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
cout << "值:" << a << endl;
return 0;
}
十三、其他知识点
概念
补充项目文件、常量、标识符、字符操作相关基础。
特性
-
sln 文件:VS 解决方案文件,双击打开项目。
-
常量 :
const修饰常量、字面量(如 10、"abc")。 -
标识符规则:不含美元符号,其余同通用规范。
-
字符操作:利用 char 可存字符 / 整数的特性,实现大小写转换、数字转换、字符串加密。