C / C++ 的值、指针与资源生命周期
对象先于地址 指针保存地址,但地址有效不等于对应对象仍然存在。理解指针需要同时考虑对象类型、存储范围、生命周期和所有者。返回局部变量的地址会留下悬空指针;数组下标越界即使没有马上崩溃,也不能当作正确行为。 ...
对象先于地址 指针保存地址,但地址有效不等于对应对象仍然存在。理解指针需要同时考虑对象类型、存储范围、生命周期和所有者。返回局部变量的地址会留下悬空指针;数组下标越界即使没有马上崩溃,也不能当作正确行为。 ...
名字绑定对象 Python 变量名绑定到对象。赋值不自动复制对象,两个名字可能引用同一个列表;函数参数也遵循同样的绑定方式。对象是否可变,比“参数是不是按值传递”更有解释力。 ...
先说明什么算正确 测试输入需要覆盖正常路径、边界和失败条件。单元测试检查局部规则,集成测试检查组件之间的真实契约,端到端测试检查用户流程。把实现中的每个常量再抄进测试,不能有效证明行为正确。 ...
把问题写成可检查的规则 程序接收输入,按照规则改变状态,产生输出。先写清输入允许什么、输出保证什么,比直接选语言更有用。例如库存扣减必须保证库存非负;仅仅让函数返回一个数字,还没有表达完整需求。 ...
程序怎样开始执行 源代码经过编译或解释体系转化为机器可执行的操作。典型本地程序经历预处理、编译、汇编和链接;加载器把可执行文件及依赖映射到进程地址空间,运行时再进入程序入口。具体过程随语言和平台变化,不能把一个语言的运行时等同于全部计算机。 ...
概率需要条件 概率模型描述不确定事件,不会自动把相关关系变成因果关系。条件概率 P(A|B) 表示在 B 已发生的条件下考虑 A;它通常不同于 P(B|A)。传感器检测到障碍与确实存在障碍之间,还隔着先验、漏检和误报。 ...
先写数据规则 关系表组织行与列,主键标识记录,外键表达引用,唯一约束防止重复,检查约束保护取值范围。应用校验改善反馈,数据库约束则在多个写入者之间维护底线。 ...
先定义要预测什么 监督学习用带标签的数据学习输入到输出的映射,模型通过损失函数衡量误差。任务定义要同时说明输入、标签、使用场景与错误代价。机器人动作预测和图像分类具有不同约束,不能只比较一个抽象的准确率。 ...
用精确对象描述问题 集合关心成员而不关心重复次序;序列保留位置;映射把定义域中的元素对应到值。问题需要计数时,先确认处理的是不同对象、不同位置还是不同排列,否则很容易重复计算。 ...
怎样使用这条路线 按上方阶段进入知识点,先完成例子与练习,再手动标记已学。已经熟悉的内容可以直接跳过,前置关系用于查漏补缺。 完成检查 选择一个小程序,说明其输入与状态、运行环境、失败条件和验证方式;将操作与结果写成别人可以复现的记录。数学与学习实验还需要说明数据划分、误差和适用条件。只读到文章末尾不作为掌握证明。