跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

C++ 基础教程:程序流程结构、数组与函数

C++ 基础教程涵盖程序流程结构、数组及函数三大核心内容。程序流程包括顺序、选择(if、三目运算符、switch)和循环(while、do-while、for)结构,以及跳转语句(break、continue、goto)。数组部分讲解了一维和二维数组的定义、内存特点及名称用法。函数章节详细阐述了函数的定义五步骤、调用方式、值传递机制、常见样式、声明规范以及分文件编写方法,旨在帮助开发者掌握 C++ 编程的基础逻辑与模块化设计。

DevStack发布于 2026/3/15更新于 2026/10/19103 浏览

四、程序流程结构

C/C++支持最基本的三种程序运行结构:

  • 顺序结构:程序按顺序执行,不发生跳转
  • 选择结构:依据条件是否满足,有选择的执行相应功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码

1. 选择结构

1. if 语句

作用: 执行满足条件的语句

三形式:

类型语法示例
单行格式 if 语句if(条件){条件满足执行语句}
多行格式 if 语句if(条件){条件满足执行语句}
else(条件){条件不满足执行语句}
多条件的 if 语句if(条件 1){条件 1 满足执行的语句}
if else(条件 2){条件 2 满足执行的语句}
else(条件){条件都不满足执行语句}

2. 三目运算符

作用: 通过三目运算符实现简单的判断

语法: 表达式 1?表达式 2:表达式 3

解释:

  • 如果表达式 1 的值为真,执行表达式 2,并返回表达式 2 的结果;
  • 如果表达式 1 的值为假,执行表达式 3,并返回表达式 3 的结果。

文章配图

3. switch

作用: 执行多条件分支语句

语法:

switch(表达式) { 
    case 结果 1:执行语句;break; 
    case 结果 2:执行语句;break; 
    case 结果 3:执行语句;break; 
    ... 
    default:执行语句;break; 
}

注意事项:

  • 注意 1: switch 语句中表达式类型只能是整型或者字符型;
  • 注意 2: case 里如果没有 break,那么程序会一直向下执行;
  • 总结: 与 if 语句比,对于多条件判断时,switch 的结构清晰,执行效率高,缺点是 switch 不可以判断区间。
  • 文章配图

    2. 循环结构

    1. while 循环

    文章配图 文章配图

    2. do...while 循环

    文章配图 文章配图

    3. for 循环语句

    文章配图 文章配图 文章配图 文章配图

    4. 嵌套

    文章配图 文章配图

    3. 调转语句

    1. break 语句

    作用: 用于跳出选择结构或者循环结构

    break 使用的时机:

    • 出现在switch 条件语句中,作用是终止 case 并跳出 switch
    • 出现在循环语句中,作用是跳出当前的循环语句
    • 出现在嵌套循环中,跳出最近的内层循环语句

    示例: 文章配图 文章配图 文章配图

    2. continue 语句

    作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

    文章配图

    (注意:continue 并没有使整个循环终止,而break会跳出循环)

    3. goto 语句

    作用: 可以无条件跳转语句

    语法: goto 标记;

    解释: 如果标记的名称存在,执行到 goto 语句时,会跳转到标记的位置

    文章配图

    (注意:在程序中不建议使用 goto 语句,以免造成程序流程混乱)

    五、数组

    1. 概述

    所谓数组,就是一个集合,里面存放了相同类型的数据元素

    • 特点 1: 数组中的每个数据元素都是相同的数据类型
    • 特点 2: 数组是由连续的内存位置组成的

    2. 分类

    1. 一维数组

    1)定义三方式:

    文章配图

    数组特点:

    文章配图

    示例:

    文章配图

    2)数组名

    一维数组名称的用途:

    1. 可以统计整个数组在内存中的长度 sizeof(arr)
    2. 可以获取数组在内存中的首地址 cout<<arr<<endl;

    文章配图 文章配图

    2. 二维数组

    1)二维数组定义的四种方式:
    1. 数据类型 数组名 [行数][列数];
    2. 数据类型 数组名 [行数][列数]={{数据 1,数据 2},{数据 3,数据 4}};
    3. 数据类型 数组名 [行数][列数]={数据 1,数据 2,数据 3,数据 4};
    4. 数据类型 数组名[][列数]={数据 1,数据 2,数据 3,数据 4};

    建议:以上 4 种定义方式,利用第二种更加直观,提高代码的可读性

    文章配图 文章配图

    2)数组名
    • 查看二维数组所占内存空间
    • 获取二维数组首地址

    文章配图

    3. 应用

    文章配图 文章配图

    六、函数

    作用:将一段经常使用的代码封装起来,减少重复代码。一个较大的程序,一般分为若干个程序块,每个块实现特定的功能。

    1. 定义

    1. 五步骤:

    1. 返回值类型
    2. 函数名
    3. 参数表列
    4. 函数体语句
    5. return 表达式

    2. 语法

    文章配图

    • 返回值类型: 一个函数可以返回一个值。在函数定义中
    • 函数名: 给函数起个名称
    • 参数列表: 使用该函数时,传入的数据
    • 函数体语句: 花括号内的代码,函数内需要执行的语句
    • return 表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据

    文章配图

    2. 调用

    功能: 使用定义好的函数

    语法: 函数名 (参数)

    文章配图

    总结: 函数定义里小括号内称为形参,函数调用时传入的参数称为实参

    3. 值传递

    • 所谓值传递,就是函数调用时实参将数值传入给形参
    • 值传递时,如果形参发生,并不会影响实参

    文章配图

    4. 常见样式

    常见的函数样式有 4 种:无参无返、有参无返、无参有返、有参有返

    文章配图

    5. 声明

    作用: 告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义

    函数的声明可以多次,但是函数的定义只能有一次

    文章配图

    6. 分文件书写

    1. 作用: 让代码结构更加清晰
    2. 函数分文件编写一般有4 个步骤:
      • 创建后缀名为.h 的头文件
      • 创建后缀名为.cpp 的源文件
      • 在头文件中写函数的声明
      • 在源文件中写函数的定义

    文章配图

    目录

    1. 四、程序流程结构
    2. 1. 选择结构
    3. 1. if 语句
    4. 2. 三目运算符
    5. 3. switch
    6. 2. 循环结构
    7. 1. while 循环
    8. 2. do...while 循环
    9. 3. for 循环语句
    10. 4. 嵌套
    11. 3. 调转语句
    12. 1. break 语句
    13. 2. continue 语句
    14. 3. goto 语句
    15. 五、数组
    16. 1. 概述
    17. 2. 分类
    18. 1. 一维数组
    19. 1)定义三方式:
    20. 2)数组名
    21. 2. 二维数组
    22. 1)二维数组定义的四种方式:
    23. 2)数组名
    24. 3. 应用
    25. 六、函数
    26. 1. 定义
    27. 1. 五步骤:
    28. 2. 语法
    29. 2. 调用
    30. 3. 值传递
    31. 4. 常见样式
    32. 5. 声明
    33. 6. 分文件书写

    更多推荐文章

    查看全部
    • ChatGPT 实用技巧:文本与数据的结构化方法
    • Vue 3 异步组件实战:defineAsyncComponent、import.meta.glob 与 Suspense
    • Python 数据分析入门:集中趋势与离散程度实战
    • Java全栈开发面试实战:从基础到高阶
    • 程序员必备实用工具与资源网站推荐
    • OpenClaw 及新兴 Claws 框架底层架构解析
    • C语言指针与数组的深度应用与内存解析
    • Windows 下 MySQL 8.0 社区版安装与配置指南
    • 动态规划专题:01 背包模型详解与空间优化
    • 基于 YOLOv5 的智能目标检测与自动锁定系统
    • ClaudeCode 结合 Figma-MCP 实现前端 UI 1:1 还原指南
    • 算法基础:前缀和如何优化区间查询
    • GitHub Copilot 提示词工程指南:从基础到精通
    • MAVROS 安装与基础指南:ROS C++ 无人机仿真实战
    • HarmonyOS RcList 组件事件处理机制与应用示例
    • 海尔智家 HomeAssistant 集成接入与配置指南
    • WSL 中配置 Miniconda 及 VSCode/Cursor 运行 Python 环境
    • Java 反射机制详解:从原理到实践
    • Python 语言在网络安全入门中的应用与学习路线
    • 多模态模型 Transfusion 与 Show-o 解析:Transformer 结合扩散与自回归生成

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online