0%

【知识总结】 程序设计基础知识

程序的本质

  • 程序 = 算法 + 数据结构
  • 程序用数据类型描述数据,用流程控制语句实现算法

数据类型

  • 值集:规定数据类型包含的值和值结构
  • 操作集:规定对值集的值的运算
  • 区分数据类型便于检查合法性
    • 静态类型语言:编译时检查数据类型
    • 动态类型语言:运行时检查数据类型

c++数据类型

  • 基本数据类型
    • int、short、long
    • float、double
    • char
    • bool
  • 构造数据类型
    • 枚举
    • 数组
    • 结构
    • 联合
    • 指针
    • 引用

流程控制语句

  • 顺序执行:表达式、空语句、复合语句
  • 选择执行:if、switch
  • 循环执行:for、while、do-while
    • 计数循环
    • 事件循环
  • 无条件转移:goto、break、continue

过程抽象

  • 隐藏实现细节,使用者只需要知道相应的功能
  • 函数调用实现过程抽象

程序在内存的分配

  • 静态数据区
    • 全局变量、static局部变量、常量
    • 默认初始化为0
  • 代码区
  • 栈区
    • auto局部变量
  • 堆区
    • 动态变量

递归函数

  • 函数在函数体中直接或间接调用自己
  • 递归条件、结束条件

指针和引用的区别

  • 引用直接访问实参(相当于别名),指针间接访问实参
  • 引用只能访问实参,不能再引用其他变量,但指针可以通过修改地址访问实参以外的数据
  • 可以使用引用实现的指针功能,尽量用引用实现
  • 可以用const指针实现引用参数的功能
    • 比如int * const p,此时p不可修改
  • const int 表示不可修改的整型
  • const int* const p 表示不可修改的整型的指针,且该指针也不可修改
  • 返回值也可以是引用类型,但是不应该返回局部变量的引用

数组

  • 静态表示
  • 动态表示
    • 动态数组
    • 链表

编译预处理命令

  • 文件包含命令 #include
    • 全局函数和全局变量的定义放在源文件,声明放在头文件
  • 宏定义 #define
  • 条件编译命令
    • 避免重复定义
    • 基于多环境的程序编制(windows、unix、mac)
    • 开发阶段的调试信息