|
|
1
1
因为我一直都是一个讲逻辑的人,所以我最想听 为什么? 您需要动态分配,而不是它的工作方式和语法在特定语言中的使用方式。从静态分配开始,转到遇到限制时的情况,引入动态分配。尝试解释不同的运行时范围(编译时、运行时和边界情况)。解释何时使用哪种分配技术。对于堆分配,您可以使用共享内存的情况,并说明有必要有一个引用机制,并通过该机制引入指针。显示您无法使用共享所有者语义轻松确定内存区域的生存期,并显示不同的解决方案(引用计数、手动释放等),并描述为什么您需要权衡而不仅仅是一个解决方案。使用除内存分配(例如raii)以外的其他示例来说明您所展示的技术不仅限于内存,还包括任何类型的资源。 我认为,关键是要从头开始积累知识,不要把人当白痴(blinky),而是要记住,很多人在这一领域的经验有限,需要具体的例子来把握为什么所有的特点都是到位的。有许多因素在起作用,并且清楚地定义约束,使学生理解问题的表述可能是教学这类事情最重要的方面。 一个例子胜过千言万语,给学生具体的例子,让他们知道到目前为止他们所知道的事情并没有减少,这使他们能够对问题进行推理,并最终采取下一步行动。 |
|
|
2
5
我见过 blinky video 以前。这有点奇怪,但它确实说明了这一点。 |
|
|
3
2
我发现教指针概念最好的类比是url。网页是内存,url是指针。每个学生都会熟悉它们,这是一个间接的“具体”例子。 至于排序,我认为静态分配后面跟着指针,然后才是引用。引用虽然简单,但在许多方面是指针的特例,在引入它们之前,需要教授大多数指针概念。 |
|
|
4
0
制造微处理器。理解内存是线性布局的(在大多数计算机体系结构中没有二维数组,[][]是syntitatic sugar),并且由mux寻址是我直到那时才理解的事情。从那以后,一切都建立在这个基础上,包括地址如何进入寄存器,由alu处理,然后放回内存和/或压入堆栈。 |
|
|
5
0
如果有人雇我来教记忆管理,祝福他们天真的心,我会从堆/堆的不同开始。
计数变量?我会把它叠起来。
诸如此类的事情。
如果你只是教投球,那是另一场比赛。
我总是想把事情简单化(有时候太多了)。也许这会有帮助。 |
|
|
6
0
我建议你从讨论物体生命周期开始。如何创建对象,以及程序员如何在删除对象时进行控制。这将使您在了解指针的基本知识之前逐步了解必要的抽象。生命周期涉及并激励上面提到的所有概念:基于堆栈的分配、C++引用和指针。 如果你认为你的学生已经准备好了,你也可以讨论聪明的指针。如果你能教他们尽可能避免生涩的观点,你会让他们和他们未来的同事们免于悲伤。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |