对于那些有课程开发经验的人来说:关于阵列的最佳策略是什么?
我见过一些学校在教授变量和控制结构之前教授数组,甚至在教授函数之前。这允许教授一些基本的算法等。然而,它带来了如何将数组传递给函数的问题,因此有必要回到数组指针被教导和修补的东西。
另一种选择是从变量和控制结构到函数,然后示教指针,一旦有了指针,从头开始示教数组,然后使用它来实现动态内存分配。
对我来说,第二种选择更有意义,因为与简单的变量不同,使用数组很容易“越界”,但是还没有学习内存和指针的学生可能不知道这些界限之外的是什么。
然而,我有兴趣知道别人的想法。
发布于 2009-03-22 00:53:59
我认为最好的方法是一次引入一个概念。你不需要100%解释第一个模块中的数组。你可以通过一次引入一个概念来分离几乎任何东西。
我将按以下顺序教授它们:数组、指针、Arrays+Pointers、OtherStuffN。
阵列:
你可以先教简单的数组,这样他们就能理解从一个变量名访问多个数据槽的能力。
//The following doesn't need an understanding of pointers
int x[10];
x[0] = 5;指针:
然后,您可以从一些简单的示例开始,讲授指针及其工作原理:
int y = 5;
int *p = &y;
*p = 6;
printf("%i\n", y);一定要特别强调指针就像任何其他变量一样。它存储一个内存地址。
现在还不需要进入堆栈和堆的对比。
Arrays+Pointers:
如何使用指针遍历数组:
int x[10];
x[0] = 5;
x[1] = 6;
int *y = x;
printf("%i\n", *y);//prints the first element
y++;
printf("%i\n", *y);//prints the second element然后你可以教更复杂的东西...
arrayi
在所有示例中,大量使用sizeof和打印地址。这真的有助于理解发生了什么。
发布于 2009-03-22 00:55:11
我会先教指针。它们可以在不讲授数组的情况下进行解释。在教授数组时,我可以在解释表达式a[i]时引用指针,以及在解释如何将它们传递给函数时引用指针。
发布于 2009-03-22 01:00:20
不要想太多的事情。
尽可能清晰和引人入胜地教授这些概念远比你按什么顺序来做要重要得多。
我建议先接触数组的基础知识,然后再做指针和重新访问数组(这一次更全面)。
https://stackoverflow.com/questions/670353
复制相似问题