C++学习:0概述和环境搭建
Posted 想文艺一点的程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习:0概述和环境搭建相关的知识,希望对你有一定的参考价值。
路线大纲:
常用语法:
面向对象:
项目实战:
特点:
- 通过反汇编,通过底层来观察 C++ 的本质
- CPP 的应用领域
思考一个问题:既然 C ++ 执行效率这么高,为什么还要出现新的编程语言?所有地方都用 C++ 不就好了吗?
- 首先每一门编程语言都有自己的优缺点,都有自己的擅长的领域。
- 比如 python 适合数学家来进行算法开发,适合分析师进行数据分析,如果让数学家和分析师再学习C++ 那就太麻烦了。
- 统计分析:R 、Python
- 网址开发:html、CSS、javascript
- 访问数据库:SQL
- 创造一门新的编程语言的成本,有时候会比改进一门编程语言的成本更低。(改进的话可能影响之前的特性)
一、汇编的重要性
为什么要研究汇编呢?
- 网上人们的教程都是基于自己的理解写出来的,他们的理解不是机器的理解。
- 汇编才是最底层的代码,最贴近机器的语言。所以研究汇编才能研究机器的工作原理。
1、学习建议
- 首先官方资料(手册、官网、文档)
- 英文资料 > 中文资料
- 掌握编程语言,了解代码的本质(汇编语言),不再依赖其他一些误人子弟的资料。
2、代码本质的挖掘
- sizeof 的本质
- a++ 和 ++a 的本质区别
- if-else 和 switch,谁的效率高
- 程序的内存布局
- 多态的实现原理
sizeof 不是一个函数,是一个关键字,编译器就会处理它,不需要浪费代码运行时候的资源,在编译阶段就会进行替换。
- 编译器直接看到 sizeof(int) ,就把他替换成了 4
将 sizeof(int) 更换为 4,可以看到他们的代码一模一样。
软件、程序的执行过程:
注意:CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算
eax 是cpu 的通用寄存器之一
3、编程语言的本质区别
-
汇编语言也要经过编译,然后生成机器语言
-
机器语言可以经过反汇编,生成汇编语言,机器语言可不能经过反汇编生成高级语言
- C++/ C ,我们可以直接看到它的本质。
- js、php、这种语言不给我们开放机器码,所以我们也不能进行反汇编。
- JAVA 依赖虚拟机。
- 编程语言的底层都是指令集,对于 CPU 来说,它只认识指令集,根本不知道上面用的什么语言。
- 每一个新语言的产生,一定是为了应用在某个领域,干一些特定的事情。
二、开发环境的搭建
- 基础的配置
- 安装需要的组件
以上是关于C++学习:0概述和环境搭建的主要内容,如果未能解决你的问题,请参考以下文章