“面向过程”语法汇总
基本技能
- 盲打
- 全键盘操作
- 学会找bug:详见我的博客 【笔记】 C++ bug大全。
二进制
- 8/16/32/64
- 正整数的表达
- 补码表达负数
- 另见我的博客 【笔记】 C++中的进制。
浮点
- 符号、阶、尾数
- 浮点的不精确性
数据类型
- 整数8种
- 浮点2种
- bool
变量定义
- 语法
,
的用法- 初始化问题
const
常变量#define
定义字面常量(即字面常量的替换)static
静态变量,在函数内,函数结束不收回- 全局(global)变量,定义在函数之外
- 字面常量:整数、浮点、字符、字符串、前后缀(详见我的博客 【笔记】 C++中 Prefix/Suffix of a Literal)
- 转义符
\
运算符
- 6大特性(功能、返回值、优先级、结合性、目(元)、左值可修改性)
- 12大类(9种基本的:算术、比较、逻辑、自增减、赋值、位、移位、条件、逗号)(3种特殊的:指针(
*
,&
,[]
)、成员访问符、内存操作运算符(new
,delete
)(杂项:size_of
,强制类型转换)
表达式
- 广义表达式问题
控制语句
if
,else
switch
,case
,default
,break
for
,while
,do while
,continue
函数
- 声明/定义,原型声明
- 函数重载(overload),缺省参数
- 作用域:
{}
,for(int i = 0; ...)
- 全局变量/静态变量
指针、数组
*
&
[]
九宫格表- 参数指针传递
- 数组传输传递、填充模式
- 指针的加减法(
++
,--
,-
) - 空指针(
NULL
/nullptr
) - C风格字符串(C-style string)
- 利用引用(reference)弥补返回值只有一个的漏洞
算法
- 循环
- 分支
- 求和
- 统计
- 递推
- 穷举
- 解方程
- 重要例子:水仙花数、最大公因数、最小公倍数、拆分R进制数据、回文、数组的颠倒与统计
陷阱
/
:整除 or not++
,--
:优先级==
还是=
&&
,||
unsigned
减法- 溢出问题,数组越界
- 访问空指针(
NULL
/nullptr
) ;
递归
具体实例:快速排序(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
欢迎转载,转载请注明出处。