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概述和环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

C++跨平台库QT学习10 OpenCV开发环境搭建

SpringMVC_[0]概述和环境搭建

JDK源码学习总体概述以及环境搭建

C++学习之路:搭建C++开发环境

Java从0到全栈-Java语言概述与开发环境搭建

cpp学习环境搭建