Codelearn

分享Python,C/C++相关的技术文章, 海洋饼干叔叔@重庆大学

C/C++里for循环的初始化语句、测试及更新表达式可以是任意合法的语句/表达式,甚至可以空缺。当初始化语句及测试表达式空缺时,需要用一个分号占位。灵活运行上述特性,可以写出很“复杂”的for循环。从软件工程的角度看,不必要的使用“技巧”会使得程序难以理解和维护,实践中,我们应该避免这种过分依赖于技巧的程序写法。

  考虑如下问题,我们试图定义一个名为Student的结构,这个结构应包括学生的姓名,学生已修课程的数量以及已修课程各科的分数。实践中,每个学生已修课程的数目是不一样的,这使得我们在定义用于存储分数的结构成员时面临两难的局面:

  • 如果将该数组定义得比较小,会存在某学生所修课程数量较多,存不下的情况。

  • 如果将该数组定义得很大,比如10000,则对于大多数学生而言,内存空间浪费严重。而且,无论将该数组定义得再大,理论上都存在实际数据超量,存不下的可能。