这篇笔记主要内容是简单介绍一些基本的计算机知识,包括基本硬件、数据类型、进制等。阅读本文大概需要 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++编程》

代码规范化好处:

  1. 代码整洁,便于阅读;

  2. 便于团队合作

简而言之,跟着郝斌老师敲就对了。

# 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。

说明

  1. 本学习笔记整理自B站郝斌老师的《郝斌C语言自学教程》片段P14-P30。

  2. 笔记中所有代码均在windows10操作系统,在VSCode编辑器中通过测试。具体VSCode C语言开发环境搭建方法请参照我的另一篇CSDN博客——Windows10下利用Visual Studio Code搭建C语言开发环境。

后记

我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。
2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。
如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技,扫描下方二维码或者搜索每日学一技关注。
这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证!

Day02 郝斌C语言自学视频之C语言编程预备知识相关推荐

  1. c语言自学文档,C语言入门自学教程傲梦.docx

    C 语言入门自学教程 C 语言是一种通用的.面向过程式的计算机程序设计语言.1972 年, 为了移植与开发UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开 发了 C 语言. C 语言是一种广泛使 ...

  2. 郝斌--数据结构---汉诺塔实现(c语言实现)

    1 #include <stdio.h> 2 3 void hannuota(int n,char A,char B,char C)//表示A借助于B移到C 4 { 5 /* 6 如果是1 ...

  3. c语言自学门槛,初学C语言的人最常问的几个问题

    初学C语言的人最常问的几个问题 C语言是一门通用计算机编程语言,应用广泛.对于新手来说学习C语言并不是那么容易,下面是C语言初学者最常问的几个问题,欢迎阅读! 1.多久能学会编程? 这是一个没有答案的 ...

  4. 【C语言自学笔记】C语言程序基础(文件/工具/第一个C语言程序)

    C语言程序基础 1基础概念 1.1源文件 1.2目标文件与可执行文件 2基础工具 2.1 IDE(集成开发环境) 2.2工程/项目 3第一个C语言程序 3.1函数 3.1.1自定义函数和main函数 ...

  5. c语言自学的论坛,C语言入门课程:C君带你玩编程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 课程简介 课程面向对计算机编程感兴趣的学习者,可以零基础.无门槛地学习.教学团队使用各种富媒体手段,力求以通识.形象的展示方式诠释生涩的知识要点,在讲授过 ...

  6. 2 中ascii函数_C语言编程预备知识--字节、ASCII

    今天说说代码规范化.字节.什么是ASCII. 一. 代码的规范化 代码写的规范可以使代码的可读性更强,容易让自己和别人更清楚的看懂程序. 还有就是使程序不容易出错. 那么代码如何写才能写得很规范呢?它 ...

  7. machit r语言_机器学习应该准备哪些数学预备知识?

    如果想理解机器学习理论,特别是深度学习,掌握线性代数中的概念知识非常重要.有了牢固的数学基础,能让你更好更直观的理解算法背后的原理.所以如果想在机器学习领域有所建树,学习数学知识是躲不掉的.机器学习专 ...

  8. 我的STM32自学之路(3)---预备知识(时钟树,GPIO模式)

    3.预备知识---时钟树,GPIO模式 本来是打算写跑马灯,可是发现外设配置时用到的时钟的确有点烦,所以这一节①理一理stm32的时钟系统②解释一下GPIO口各个模式是什么鬼(推挽.上拉等等).Let ...

  9. C语言郝斌视频学习一 变量为什么要初始化和一个小例子以及大纲笔记

    在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以"85"开头的很大的数字(此时该段内存中为一个垃圾 ...

  10. 郝斌老师C语言学习笔记(一)

    在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以"85"开头的很大的数字(此时该段内存中为一个垃圾 ...

最新文章

  1. ts-node 直接运行ts文件
  2. boost::spirit::karma::detail::format_manip相关的测试程序
  3. spring-mvc里的 mvc:resources 及静态资源访问
  4. SQL Server中常用全局变量介绍
  5. 4 WM配置-主数据-定义编码范围
  6. 华为联手沃达丰进行5G测试 传输速度达到20Gbit/s
  7. golang 类型说明
  8. C++ 函数重载、隐藏与覆盖的区别
  9. Spring+SpringMVC+mybatis+Quartz整合
  10. Json.Net学习笔记(十) 保持对象引用
  11. asp.net 页面跳转的方法
  12. 手把手教你使用Python写贪吃蛇游戏(pygame)
  13. Deepin - 环境配置及软件安装卸载记录(Debain镜像源)
  14. poj 1703 poj 2492 并查集 桥梁判AB组
  15. Glide加载图片缩放模式
  16. adc网络语什么意思_王者荣耀游戏术语解释 ADC是什么意思
  17. 自然语言处理中CNN模型几种常见的Max Pooling操作
  18. java网课|内部类
  19. Logstash报错:[ERROR][logstash.agent ] Failed to execute action {...
  20. linux SIGSEGV信号 内存访问错误 Segmentation fault

热门文章

  1. Android TCP客户端调试助手
  2. 关于直流输电方向一些行业动态
  3. Redis 连接命令
  4. retainAll()和removeAll()
  5. 饼状统计图php,制作圆饼统计图
  6. c++ 二次开发 良田高拍仪_捷易拍sdk开发指南(高拍仪、文件拍摄仪二次开发软件)...
  7. python3中pygame安装过程(超级详细)
  8. linux root用户被锁定如何解除,超级管理员被锁定,如何解锁?
  9. 基于STM32CUBE MX 的TM1640的使用例程
  10. 6款支持中文语音识别开源软件的简单使用