ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

C 和 C++ 的联系与区别

C 和 C++ 的联系与区别 C 和 C 的联系与区别✅ 联系C 是在 C 的基础上扩展而来C 兼容绝大部分 C 语言语法。绝大多数 C 代码可以直接当作 C 代码编译。两者底层编程思想接近都可以直接操作内存、指针性能很高适合系统开发、嵌入式、驱动。共用很多基础关键字int、if、for、while、return、指针、数组等基础语法一致。编译原理类似源码 → 编译成目标文件 → 链接生成可执行程序。❌ 核心区别1. 编程范式最大区别C面向过程。关注怎么做拆分步骤、函数数据和函数互相独立。没有类、对象。C多范式。支持面向过程兼容 C面向对象 (OOP) 泛型编程模板 template。可以把数据和操作封装到类。2. 核心新增特性C 独有类 (class)、对象、继承、多态、封装引用C 没有引用只有指针函数重载、运算符重载模板 template泛型STL 标准库命名空间 namespace解决命名冲突bool、true、falseC99 才有 bool老 C 没有new / delete动态内存C 用malloc/freeSTL 容器vector、string、map 等C 没有异常 try-catch、RTTI 等3. 一些语法细节差异函数声明Cvoid func();代表函数参数不确定 Cvoid func();代表无参数等价void func(void);变量定义位置老 CC89要求变量必须写在代码块开头C 和 C99 可以任意位置定义变量。类型转换C 强制转换写法简单C 提供static_cast/reinterpret_cast等更安全的强转。constC 里const修饰的变量本质上常被看作只读变量不是真正编译期常量C 的 const 可以是编译期常量。头文件C#include stdio.hC推荐#include cstdio也可以用 stdio.h 兼容4. 内存管理Cmalloc/calloc/realloc/free只分配原始内存不会调用构造 / 析构函数C推荐new/delete分配内存同时自动调用构造函数释放调用析构函数也兼容 malloc/free但不建议混用。5. 标准库C 标准库stdio.h、string.h、stdlib.h只有基础函数C除了 C 库额外有 STL字符串、容器、算法 适用场景C操作系统内核、单片机嵌入式、底层驱动追求极简不需要面向对象。C游戏引擎、高性能服务器、音视频、大型复杂项目需要面向对象、泛型。
返回列表