Day02 郝斌C语言自学视频之C语言编程预备知识
这篇笔记主要内容是简单介绍一些基本的计算机知识,包括基本硬件、数据类型、进制等。阅读本文大概需要 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.2345printf("%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'; // OKprintf("%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语言编程预备知识相关推荐
- c语言自学文档,C语言入门自学教程傲梦.docx
C 语言入门自学教程 C 语言是一种通用的.面向过程式的计算机程序设计语言.1972 年, 为了移植与开发UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开 发了 C 语言. C 语言是一种广泛使 ...
- 郝斌--数据结构---汉诺塔实现(c语言实现)
1 #include <stdio.h> 2 3 void hannuota(int n,char A,char B,char C)//表示A借助于B移到C 4 { 5 /* 6 如果是1 ...
- c语言自学门槛,初学C语言的人最常问的几个问题
初学C语言的人最常问的几个问题 C语言是一门通用计算机编程语言,应用广泛.对于新手来说学习C语言并不是那么容易,下面是C语言初学者最常问的几个问题,欢迎阅读! 1.多久能学会编程? 这是一个没有答案的 ...
- 【C语言自学笔记】C语言程序基础(文件/工具/第一个C语言程序)
C语言程序基础 1基础概念 1.1源文件 1.2目标文件与可执行文件 2基础工具 2.1 IDE(集成开发环境) 2.2工程/项目 3第一个C语言程序 3.1函数 3.1.1自定义函数和main函数 ...
- c语言自学的论坛,C语言入门课程:C君带你玩编程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 课程简介 课程面向对计算机编程感兴趣的学习者,可以零基础.无门槛地学习.教学团队使用各种富媒体手段,力求以通识.形象的展示方式诠释生涩的知识要点,在讲授过 ...
- 2 中ascii函数_C语言编程预备知识--字节、ASCII
今天说说代码规范化.字节.什么是ASCII. 一. 代码的规范化 代码写的规范可以使代码的可读性更强,容易让自己和别人更清楚的看懂程序. 还有就是使程序不容易出错. 那么代码如何写才能写得很规范呢?它 ...
- machit r语言_机器学习应该准备哪些数学预备知识?
如果想理解机器学习理论,特别是深度学习,掌握线性代数中的概念知识非常重要.有了牢固的数学基础,能让你更好更直观的理解算法背后的原理.所以如果想在机器学习领域有所建树,学习数学知识是躲不掉的.机器学习专 ...
- 我的STM32自学之路(3)---预备知识(时钟树,GPIO模式)
3.预备知识---时钟树,GPIO模式 本来是打算写跑马灯,可是发现外设配置时用到的时钟的确有点烦,所以这一节①理一理stm32的时钟系统②解释一下GPIO口各个模式是什么鬼(推挽.上拉等等).Let ...
- C语言郝斌视频学习一 变量为什么要初始化和一个小例子以及大纲笔记
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以"85"开头的很大的数字(此时该段内存中为一个垃圾 ...
- 郝斌老师C语言学习笔记(一)
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以"85"开头的很大的数字(此时该段内存中为一个垃圾 ...
最新文章
- ts-node 直接运行ts文件
- boost::spirit::karma::detail::format_manip相关的测试程序
- spring-mvc里的 mvc:resources 及静态资源访问
- SQL Server中常用全局变量介绍
- 4 WM配置-主数据-定义编码范围
- 华为联手沃达丰进行5G测试 传输速度达到20Gbit/s
- golang 类型说明
- C++ 函数重载、隐藏与覆盖的区别
- Spring+SpringMVC+mybatis+Quartz整合
- Json.Net学习笔记(十) 保持对象引用
- asp.net 页面跳转的方法
- 手把手教你使用Python写贪吃蛇游戏(pygame)
- Deepin - 环境配置及软件安装卸载记录(Debain镜像源)
- poj 1703 poj 2492 并查集 桥梁判AB组
- Glide加载图片缩放模式
- adc网络语什么意思_王者荣耀游戏术语解释 ADC是什么意思
- 自然语言处理中CNN模型几种常见的Max Pooling操作
- java网课|内部类
- Logstash报错:[ERROR][logstash.agent ] Failed to execute action {...
- linux SIGSEGV信号 内存访问错误 Segmentation fault
热门文章
- Android TCP客户端调试助手
- 关于直流输电方向一些行业动态
- Redis 连接命令
- retainAll()和removeAll()
- 饼状统计图php,制作圆饼统计图
- c++ 二次开发 良田高拍仪_捷易拍sdk开发指南(高拍仪、文件拍摄仪二次开发软件)...
- python3中pygame安装过程(超级详细)
- linux root用户被锁定如何解除,超级管理员被锁定,如何解锁?
- 基于STM32CUBE MX 的TM1640的使用例程
- 6款支持中文语音识别开源软件的简单使用