【SEU程序设计课笔记】 13 - 2020/11/23 - Write C++ programs - “面向过程”语法汇总/递归/空指针

“面向过程”语法汇总

基本技能

  1. 盲打
  2. 全键盘操作
  3. 学会找bug:详见我的博客 【笔记】 C++ bug大全

二进制

  1. 8/16/32/64
  2. 正整数的表达
  3. 补码表达负数
  4. 另见我的博客 【笔记】 C++中的进制

浮点

  1. 符号、阶、尾数
  2. 浮点的不精确性

数据类型

  1. 整数8种
  2. 浮点2种
  3. bool

变量定义

  1. 语法
  2. ,的用法
  3. 初始化问题
  4. const常变量
  5. #define定义字面常量(即字面常量的替换)
  6. static静态变量,在函数内,函数结束不收回
  7. 全局(global)变量,定义在函数之外
  8. 字面常量:整数、浮点、字符、字符串、前后缀(详见我的博客 【笔记】 C++中 Prefix/Suffix of a Literal
  9. 转义符\

运算符

  1. 6大特性(功能、返回值、优先级、结合性、目(元)、左值可修改性)
  2. 12大类(9种基本的:算术、比较、逻辑、自增减、赋值、位、移位、条件、逗号)(3种特殊的:指针(*,&,[])、成员访问符、内存操作运算符(new,delete)(杂项:size_of,强制类型转换)

表达式

  1. 广义表达式问题

控制语句

  1. if,else
  2. switch,case,default,break
  3. for,while,do while,continue

函数

  1. 声明/定义,原型声明
  2. 函数重载(overload),缺省参数
  3. 作用域:{},for(int i = 0; ...)
  4. 全局变量/静态变量

指针、数组

  1. * & []九宫格表
  2. 参数指针传递
  3. 数组传输传递、填充模式
  4. 指针的加减法(++,--,-
  5. 空指针(NULL/nullptr
  6. C风格字符串(C-style string)
  7. 利用引用(reference)弥补返回值只有一个的漏洞

算法

  1. 循环
  2. 分支
  3. 求和
  4. 统计
  5. 递推
  6. 穷举
  7. 解方程
  8. 重要例子:水仙花数、最大公因数、最小公倍数、拆分R进制数据、回文、数组的颠倒与统计

陷阱

  1. /:整除 or not
  2. ++,--:优先级
  3. ==还是=
  4. &&,||
  5. unsigned减法
  6. 溢出问题,数组越界
  7. 访问空指针(NULL/nullptr
  8. ;

递归

具体实例:快速排序(quicksort)
在数组中用堆声请数组,否则很容易栈溢出。

空指针

指针的三态

非空:可用
空:可用
非空:不可用(有可能指的内容不存在了,it is a ghost pointer

语法

指针地址为零表示空指针。
三种写法:

int* p = 0; // Way 1
int* p = nullptr; // Way 2
int* p = NULL; // Way 3

空指针的判别(推荐使用上面的方法)

if (!p) // not a null pointer
if (p != nullptr) // another way

ALL RIGHTS RESERVED © 2020 Teddy van Jerry
欢迎转载,转载请注明出处。


See also

Teddy van Jerry 的导航页

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值