当前位置: 首页 > news >正文

C/C++ 知识点:静态语言与动态语言

文章目录

  • 一、静态语言与动态语言
    • 1、概念
    • 2、主要区别
    • 3、示例对比
      • 3.1、类型检查时机
      • 3.2、编译与执行
      • 3.3、性能
      • 3.4、代码灵活性
      • 3.5、典型用途

一、静态语言与动态语言

1、概念

  • 静态语言(Static Typing)

    • 变量类型在编译时确定,不能随意更改。
    • 如:C++、Java、Go。
  • 动态语言(Dynamic Typing)

    • 变量类型在运行时确定,可随时更改。
    • 如:Python、JavaScript、Ruby。

2、主要区别

特性静态语言(C++)动态语言(Python)
类型检查编译时检查,类型错误直接报错运行时检查,执行到错误代码才报错
变量类型声明后固定,不可变可随时改变类型(如 x=10x="hi"
性能更高(编译优化)较低(运行时类型判断)
开发效率较低(需严格定义类型)较高(代码更简洁)
典型用途系统编程、高性能计算快速开发、脚本、数据分析

3、示例对比

静态语言(如C++)与动态语言(如Python)的核心区别如下:

3.1、类型检查时机

  • C++(静态)
    编译时检查类型,变量类型必须显式声明或推导后固定:
    int x = 10;  // 类型明确为int
    x = "hello"; // 编译报错
    
  • Python(动态)
    运行时推断类型,变量类型可动态改变:
    x = 10      # 类型为int
    x = "hello" # 合法,类型变为str
    

3.2、编译与执行

  • C++
    需先编译为机器码再执行,提前发现类型错误:
    g++ program.cpp -o program && ./program
    
  • Python
    直接解释执行,运行时才暴露类型问题:
    python script.py
    

3.3、性能

  • C++
    编译时优化,运行效率高(适合计算密集型任务)。
  • Python
    运行时类型判断导致开销(但可通过C扩展优化)。

3.4、代码灵活性

  • C++
    需模板或重载实现泛型,灵活性受限但严谨:
    template<typename T>
    T add(T a, T b) { return a + b; }
    
  • Python
    天然支持泛型,代码更简洁但可能隐藏错误:
    def add(a, b):
        return a + b  # 运行时才检查a+b是否合法
    

3.5、典型用途

  • C++:操作系统、游戏引擎、高频交易等。
  • Python:快速开发、数据分析、脚本任务等。

总结:静态语言重安全与性能,动态语言重开发效率与灵活性。

相关文章:

  • 修改ESP32CAM的示例CameraWebServer里的camera_index.h的方法
  • 软考中级-软件设计师 2022年下半年下午题真题解析:通关秘籍+避坑指南
  • 嵌入式汇编语言从小白到入门:从零开始的底层编程之旅
  • QT Sqlite数据库-教程001 创建数据库和表-下
  • Qt之OpenGL使用Qt封装好的着色器和编译器
  • 【图像分类】【深度学习】图像分类评价指标
  • (区间 dp)洛谷 P1220 关路灯/P2466 Sue 的小球 题解
  • QCustomPlot安装及demo
  • 洛谷 三连击 暴力枚举
  • 如何在 CentOS 7 系统上以容器方式部署 GitLab,使用 ZeroNews 通过互联网访问 GitLab 私有仓库,进行代码版本发布与更新
  • 订单防重复提交与超时取消:AOP + 延迟队列实战
  • Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor
  • 鼎讯信通 通信安全的终极解决方案:机架式通信干扰机
  • 小白学习java第12天:IO流之缓冲流
  • 数据库守护神-WAL机制
  • 业务幂等性技术架构体系-接口幂等
  • 时序数据异常检测-综述
  • 【蓝桥杯】赛前练习
  • STM32 模块化开发指南 · 第 3 篇 环形缓冲区 RingBuffer 模块设计与单元测试
  • WHAT - React 安全地订阅外部状态源 - useSyncExternalStore
  • 那些开店的网站是自己做的吗/中央电视台新闻联播
  • 做soho 怎么建立网站/个人网页设计制作网站模板
  • 青岛电子商务网站建设/百度竞价推广账户
  • 做愛视频网站/创建网站平台
  • 柳林网站建设/品牌推广战略
  • 邢台网站建设行情/女孩子做运营是不是压力很大