一、C预备知识
将之前在B站上看的郝斌老师的C语言课程整理一下,虽然都是很基础的东西,但还是需要经常回顾。
1.CPU、内存条、硬盘、显卡、主板、显示器之间的关系
- 如果播放硬盘里的电影,先将数据读入内存条,cpu再对内存条里的数据进行处理,主板将各种器件联系起来。
- CPU和GPU:CPU基于各种指令集实现统筹逻辑等复杂工作,而GPU擅长对大数据进行简单重复工作。
- 经过CPU调度或生成的图像、视频,游戏画面均通过总线传递给GPU,而GPU把这些画面数据翻译成显示器能读懂的数据传递给显存,继而显存再传递给显卡的视频控制器。
内存的基本概念
- 内存是用来存储数据的设备。它的存储速度介于寄存器和硬盘之间
- 内存是cpu唯一可以访问的大容量的存储设备,所有硬盘中的程序和数据必须调入内存之后方可被cpu执行。切记:cpu不能直接处理硬盘中的数据
- 内存的问题是软件开发中最核心的问题之一。如:内存的分配,内存的释放,内存什么时候分配,内存什么时候释放,由谁来分配,由谁来释放,分配在什么地方,访问权限如何。
- 内存是多字节组成的线性一维存储空间
- 内存的基本划分单位是字节
- 每个字节有8位,每一位存放1或者0
- 字节和编号是一一对应的,每一个字节都有一个唯一确定的编号,这个编号也叫地址
- 一个系统所能管理的内存空间的大小取决于参与编号的二进制位数
Hello world如何运行
通过编译.c文件生成.exe的可执行文件,之后操作系统调用cpu执行.exe文件。
2.什么是数据类型
1.基本数据类型:整数,浮点数,字符
-
整数:整型(int);短整型(short int);长整型(long int,一般写成long long)
-
浮点数:单精度浮点数 (float);双精度浮点数(double ,有时候会浪费内存)
-
字符:单个字符(char)char ch = ‘A’;
2.复合数据类型:
结构体,枚举,共用体
3.什么是变量
变量的本质是内存的一段存储空间
程序运行完毕之后会自动释放
4.CPU、内存条、VC、操作系统之间的关系
VC请求操作系统分配内存,cpu对内存中的数据进行处理
5.变量为什么要初始化
变量初始化即赋值的意思
未赋值,将填充字(一般是垃圾值)放入变量中
6.如何定义变量
1.数据类型 变量名 = 要赋的值;
2.数据类型 变量名;
变量名=要赋的值;
7.什么是进制
N进制:逢N进一
%d:十进制
%x:十六进制
%0:八进制
8.常量在c语言是如何表示的
整数:十进制,十六进制0x,八进制0
浮点数:float x = 3.2e3
字符:单个字符用单引号括起来,字符串用双引号
9.常量是以什么样的二进制代码存储在计算机中
整数:以补码的形式转化为二进制代码存在计算机中
实数:以IEEE754标准转化为二进制代码存储
字符的本质实际与整数的存储方式相同
10.代码的规范化
推荐资料:《高质量c/c++编程》林锐
成对:if()先敲完整的括号
缩进:地位同等不缩进,内部代码缩进
换行:定义变量/对变量进行操作/输出,通过换行将三部分分开
不同功能模块通过换行分开
11.什么是字节
字节即数据存储单位,硬件能访问的最小单位
1字节=8位
1K=1024字节
1M=1024 K
1G=1024M
12.不同类型数据之间相互赋值的问题
与补码有关
13.什么是ASCII
ASCII不是一个值,而是一个规定,规定不同字符使用哪个整数值去表示
14.字符的存储
字符本质上与整数的存储相同
15.建议
学完c语言再学c++
代码规范化
增加代码的可读性
降低代码出错的可能性