C++从新手到技术专家 (day01)

用365天从C++开发新手到技术专家

一、C++基础入门

1. 编程语言的发展

语言:人与人沟通交流的桥梁

计算机语言:人与计算交流的桥梁

1.1 机器语言

机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码。不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是最低级的语言。

机器是只能识别01的, 0101010101001101010

1.2 汇编语言

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址

是在"机器语言"之上的编程语言,理解难度要比"机器语言"容易,单片开发。属于第二代编程语言

1.3 高级语言

面向人类的高级语言

高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。

2.C++语言特点与应用分析

C++是一种强大且复杂的多范式、静态类型、编译型系统级编程语言。它以其高性能、底层控制能力和广泛的应用领域著称,但同时也有着陡峭的学习曲线。以下是其核心特点分析:

核心优势与特点

2.1.高性能与效率(Performance & Efficiency):       
  • 编译为本机代码: 直接编译成高效的机器码,运行速度通常接近C,远快于解释型或托管语言(如Java,Python)。
  • 零成本抽象(Zero-overhead Abstraction):核心设计原则。高级特性(如类、模板、内联函数)在运行时几乎没有额外开销(如果你不使用该抽象,则不需为之付出代价)。
  • 精细的内存控制:程序员可以直接管理内存(new/delete,智能指针) , 避免了垃圾回收带来的不确定延迟,这对于实时系统、游戏引擎、高频交易等至关重要。
  • 内联汇编:允许在代码中直接嵌入特点CPU的汇编指令,进行极致优化。
2.2.多范式编程(Multi-paradigm):     
  • 过程化编程:支持 C 风格的结构化编程
  • 面向对象编程(OOP):全面支持封装、继承、多态(包括运行时多态/虚函数和编译时多态/模板、重载)。
  • 泛型编程(Generic ProGramming): 通过模板实现。允许编写独立于具体数据类型的代码(如std::vector  ,std::sort ) , 提供高度的代码复用和类型安全,是 C + + 强大库生态(尤其是STL)的基础。模板元编程(TMP)和constexpr  允许在编译期间执行计算和生成代码,提升运行时效率。
2.3底层硬件访问与系统编程(Systems Programming & Hardware Access):
  • 指针: 提供直接操作内存地址的能力,是与硬件、操作系统交互的基础。
  • 资源直接管理:对内存、文件句柄、网络套接字等资源有直接控制权。
  • 与C高度兼容: 绝大多数C代码(或稍作修改)可在C++中编译运行,并能轻松调用C库。这使得C++ 能无缝集成到现有C生态系统中,用于操作系统内核、驱动程序、嵌入式系统开发。
2.4强大的标准库与生态系统(Rich Standard Library & Ecosystem):
  • 标准模板库(stl): 提供一系列高效、泛型的容器(vector,map,set 等)、算法 (sort,find,transform  等)和迭代器,是C++编程的基石。
  • 不断发展的C++标准库:现代标准 (C++ 11/14/17/20/23) 持续增加重要组件:智能指针( unique_ptr  , shared_ptr) 、线程库(std::thread,mutex) 、正则表达式、时间库(std::chrono) 文件系统库(std::filesystem) 、并发设施(std::async,future/promise)等。
  • 庞大的第三方库:Boost(许多特性成为标准库前身) 、Qt (GUI 和应用框架) 、Eigen (线性代数) 、OpenCV(计算机视觉) 等,覆盖几乎所有领域。
2.5静态类型系统(Static Typing):
  • 在编译期进行严格的类型检查,有助于早期发现类型相关的错误,提高代码健壮性和运行时安全性(相比动态类型语言)。
  • 结合模板,可以在编译期进行强大的类型推导和约束检查。
2.6直接内存模型(Direct Memory Model):
  • 对象通常在栈上或直接通过new  在堆上分配,内存布局直接映射硬件,没有额外的运行时对象头或中间层,效率极高。但也要求程序员小心管理生命周期。                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值