这篇笔记主要内容是简单介绍一些基本的计算机知识,包括基本硬件、数据类型、进制等。阅读本文大概需要 5 分钟。
Day02 郝斌C语言自学视频之C语言编程预备知识
- 1. CPU、内存条、硬盘、显卡、主板、显示器之间的关系
- 2. HelloWorld是程序如何运行起来的
- 3. 什么是数据类型
- 3.1 基本类型数据
- 整数
- 浮点数(实数)
- 字符
- 3.2 复合类型数据
- 4. 什么是变量
- 5. CPU、内存条、操作系统之间的关系
- 6. 变量为什么必须初始化
- 7. 如何定义变量
- 8. 什么是进制
- 9. 常量在C语言中是如何表示的
- 9.1 整数
- 9.2 浮点数
- 9.3 字符
- 10. 常量是以什么样的二进制代码存储在计算机
- 11. 代码规范化
- 12. 什么是字节
- 13. 不同类型数据之间的相互赋值的问题
- 14. 什么是ASCII(重要)
- 15. 字符的存储[字符本质上与整数的存储方式相同]
- 后记
1. CPU、内存条、硬盘、显卡、主板、显示器之间的关系
推荐书籍《计算机是怎样跑起来的》《程序是怎样跑起来的》或者B站的《计算机科学速成课》。
CPU:计算处理。
内存条:硬盘和CPU的桥梁。
硬盘:存储。
显卡:处理图像。
主板:载体。
显示器:屏幕。
一段代码的运行,首先要把代码从硬盘加载到内存,CPU再处理内存中的数据,把结果输出到显示屏,或者经过内存在保存回硬盘。图像的话会交给显卡处理。主板是安放显卡、CPU等器件的载体。
2. HelloWorld是程序如何运行起来的
这里我推荐一本书《程序是怎样跑起来的》。它日本人写的一本书,非常很好,通俗易懂。
对于C语言而言就是:编译–>链接–>运行
# include <stdio.h>
int main(void)
{
printf("欢迎来到C世界!\n");
return 0;
}
3. 什么是数据类型
3.1 基本类型数据
整数
整型——int,4个字节。
短整型——short int,2个字节。
长整型——long int,8字节。
浮点数(实数)
单精度浮点数——float,4个字节。
双精度浮点数——double,8个字节。
字符
单字符——char,1个字节。
字符串——一系列字符的组合。
3.2 复合类型数据
结构体(用的不多),枚举(重要),共用体(淘汰了)。
4. 什么是变量
变量的本质就是内存中的一段存储空间。
# include <stdio.h>
int main(void)
{
int i;
i = 3; // 3最终放在内存中,程序终止后3所占空间被释放
printf("i = %d\n", i);
return 0;
}
5. CPU、内存条、操作系统之间的关系
推荐书籍《计算机是怎样跑起来的》《程序是怎样跑起来的》或者B站的《计算机科学速成课》。
这里非常有意思,不断地抽象的过程。
6. 变量为什么必须初始化
初始化即赋值的意思。原因是操作系统不会对于回收的内存空间进行初始化,会使得内存中存在原来遗留的垃圾数据,所以变量赋值需要初始化,清除原来的垃圾数据。
# include <stdio.h>
int main(void)
{
int i;
printf("i = %d\n", i);
return 0;
}
7. 如何定义变量
格式:
数据类型 变量名;
变量名 = 要赋的值;
举例:
int i = 3; // 等价于 int i; i = 3;
int i, j; // 等价于 int i; int j;
int i, j = 3; // 等价于 int i; int j; j = 3;
int i = 3, j = 5; // 等价于int i; int j; i = 3; j = 5;
int i, j; i = j = 5; // 等价于 int i, j; i = 5; j = 5;
8. 什么是进制
进制:逢几进一。
十进制:逢十进一。
二进制:逢二进一。
八进制:逢八进一。
十六进制:逢十六进一。
这里推荐B站计算机速成课,二进制背后的故事非常值得思考,电流的有无,抽象的思维。
举例:
# include <stdio.h>
int main(void)
{
int i = 12;
printf("i = %d\n", i);
printf("i = %x\n", i);
printf("i = %X\n", i);
printf("i = %o\n", i);
/*
printf的用法
%d表示以十进制输出
%x或者%X表示以十六进制输出,x和X的区别在于大小写表示
%o表示以八进制输出
*/
return 0;
}
9. 常量在C语言中是如何表示的
9.1 整数
十进制:传统写法。
十六进制:前面加0x或者0X。
八进制:前面加0,注意是数字0不是字母o。
9.2 浮点数
传统的写法
- float x = 3.2; // 传统
科学计数法
- float x = 3.2e3; // x的值是3200
- float x = 123.45e-2; // x的值是1.2345
9.3 字符
单个字符用单引号括起来。'A’表示字符A,'AB’错误, "AB"正确。
字符串用双引号括起来。"ABC"正确,"A"也正确,因为’A’ '\0’的组合。
# include <stdio.h>
int main(void)
{
float x = 123.45e-2; // x的值是1.2345
printf("%f\n", x);
return 0;
}
10. 常量是以什么样的二进制代码存储在计算机
这是编码问题,本质是数学里面的映射问题。
整数是以补码的形式转化为二进制代码存储在计算机中的。
实数是以IEEE754标准转化为二进制代码存储在计算机中的。
字符的本质实际也是与整数的存储方式相同。
11. 代码规范化
推荐书籍 林锐《高质量C/C++编程》
代码规范化好处:
-
代码整洁,便于阅读;
-
便于团队合作
简而言之,跟着郝斌老师敲就对了。
# include <stdio.h>
int main(void)
{
// 定义变量
// 对变量进行操作
// 输出值
return 0;
}
12. 什么是字节
存储数据的单位,并且是硬件所能访问的最小单位。
1 字节 = 8位
1K = 1024字节
1M = 1024K
1G = 1024M
13. 不同类型数据之间的相互赋值的问题
掌握补码的知识。
暂不考虑。
14. 什么是ASCII(重要)
ASCII不是一个值,而是一种规定,ASCII规定了不同的字符使用哪个整数值去表示。本质就是一个映射关系。
它规定了:
‘A’ – 65
‘B’ – 66
‘a’ – 97
‘b’ – 98
例1:
# include <stdio.h>
int main(void)
{
char ch = 'A'; // OK
// char ch = "AB"; //error 因为"AB"是字符串,我们不能把字符串赋给单个字符
// char ch = "A"; // error
// char ch = 'AB'; // 'AB'是错误的
// char ch = 'B'; // error,因为ch变量已经在5行被定义,这样会导致变量名被重复定义。
ch = 'C'; // OK
printf("%c\n", ch);
return 0;
}
例2:
# include <stdio.h>
int main(void)
{
char ch = 'b'; //
printf("%d\n", ch);
return 0;
}
15. 字符的存储[字符本质上与整数的存储方式相同]
同14。
【说明】
-
本学习笔记整理自B站郝斌老师的《郝斌C语言自学教程》片段P14-P30。
-
笔记中所有代码均在windows10操作系统,在VSCode编辑器中通过测试。具体VSCode C语言开发环境搭建方法请参照我的另一篇CSDN博客——Windows10下利用Visual Studio Code搭建C语言开发环境。
后记
我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。
2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。
如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技
,扫描下方二维码或者搜索每日学一技
关注。
这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证!
更多推荐
Day02 郝斌C语言自学视频之C语言编程预备知识
发布评论