1CPP 学习概述

Posted 想文艺一点的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1CPP 学习概述相关的知识,希望对你有一定的参考价值。

路线大纲:

常用语法:

image-20210516235935447

面向对象:

image-20210517000040813

项目实战:

image-20210517000105576

特点:

  • 通过反汇编,通过底层来观察 C++ 的本质

image-20210517001734124

  • CPP 的应用领域

image-20210517001824971

思考一个问题:既然 C ++ 执行效率这么高,为什么还要出现新的编程语言?所有地方都用 C++ 不就好了吗?

  • 首先每一门编程语言都有自己的优缺点,都有自己的擅长的领域。
  • 比如 python 适合数学家来进行算法开发,适合分析师进行数据分析,如果让数学家和分析师再学习C++ 那就太麻烦了。
  • 统计分析:R 、Python
  • 网址开发:html、CSS、javascript
  • 访问数据库:SQL
  • 创造一门新的编程语言的成本,有时候会比改进一门编程语言的成本更低。(改进的话可能影响之前的特性)

image-20210517003220418

一、汇编的重要性

为什么要研究汇编呢?

  • 网上人们的教程都是基于自己的理解写出来的,他们的理解不是机器的理解
  • 汇编才是最底层的代码,最贴近机器的语言。所以研究汇编才能研究机器的工作原理

1、学习建议

  • 首先官方资料(手册、官网、文档)
  • 英文资料 > 中文资料
  • 掌握编程语言,了解代码的本质(汇编语言),不再依赖其他一些误人子弟的资料。

2、代码本质的挖掘

  • sizeof 的本质
  • a++ 和 ++a 的本质区别
  • if-else 和 switch,谁的效率高
  • 程序的内存布局
  • 多态的实现原理

sizeof 不是一个函数,是一个关键字,编译器就会处理它,不需要浪费代码运行时候的资源,在编译阶段就会进行替换

  • 编译器直接看到 sizeof(int) ,就把他替换成了 4

image-20210518161303644

image-20210518161204559

将 sizeof(int) 更换为 4,可以看到他们的代码一模一样

image-20210519002707405

软件、程序的执行过程:

image-20210519003931084

注意:CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算

image-20210519004017762

eax 是cpu 的通用寄存器之一

image-20210519004502749

3、编程语言的本质区别

  • 汇编语言也要经过编译,然后生成机器语言

  • 机器语言可以经过反汇编,生成汇编语言,机器语言可不能经过反汇编生成高级语言

image-20210519004942628

  • C++/ C ,我们可以直接看到它的本质。
  • js、php、这种语言不给我们开放机器码,所以我们也不能进行反汇编。
  • JAVA 依赖虚拟机。
  • 编程语言的底层都是指令集,对于 CPU 来说,它只认识指令集,根本不知道上面用的什么语言。
  • 每一个新语言的产生,一定是为了应用在某个领域,干一些特定的事情。

image-20210519010314418

二、开发环境的搭建

image-20210519012057084

  • 基础的配置

image-20210519012325891

  • 安装需要的组件

image-20210519012423170

以上是关于1CPP 学习概述的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基础教程笔记---机器学习概述

机器学习概述

强化学习:概述

机器学习概述

增强学习or强化学习概述

机器学习概述1