摘要:
类之间的基本关系: 类之间的基本关系--继承: 类之间的基本关系--组合: 类的表示法: 类的表示法--简化 类的表示法--改进1 类的表示法--改进2 类的表示法--改进3 类的表示法--改进4 示例: 这段代码可以正常编译通过。 因此,这种的类的表示方式被编译器接受了。 小结: 阅读全文
摘要:
日常生活中,我们都习惯于对事物进行分类,那么这种分类思想是否可以引入程序设计中呢? 面向对象的基本概念: 类和对象的意义: 一些有趣的问题; 小结: 阅读全文
摘要:
函数设计原则: 函数应该是无状态的,就是第一次调用和第二次调用是一样的。 getchar返回值是int型。 优秀代码欣赏:Eclipse代码 小结: 阅读全文
摘要:
递归的数学思想: 递归函数: 递归函数设计技巧: 递归函数设计示例一: 递归版strlen: 运行结果如下: 递归函数示例二: 示例如下: 运行结果如下: 递归函数示例三: 程序如下: 运行结果如下: 小结: 阅读全文
摘要:
函数与宏: 示例: 运行结果如下: 第19行加上重置为0的宏,结果如下: 我们再次修改第19行,第一个参数使用6,先用宏,再用函数调用,结果如下: 使用宏时,编译器不会报任何警告,而在运行时出现段错误。使用函数在编译阶段就会报警告。 编译器对于函数会有更严格的检查。可以帮助我们发现更多的错误,能用函 阅读全文
摘要:
参数入栈顺序: 调用约定: gcc语言默认使用__cdecl调用约定。调用约定不是语言的一部分,是编译器的一部分。 调用约定使用的最典型的地方就是库函数的调用。因为库的编译方式我们的自己的程序的编译方式可能不一样。 小问题: 如何编写一个计算n个数平均值的函数? 示例程序: 这里我们求平均值的时候还 阅读全文
摘要:
函数参数: 函数参数的求值顺序依赖于编译器的实现: 第一感觉,这个函数会输出1和2,k的最终值会变成3。 示例程序: 运行结果如下: 这与我们的预期是不符的,这是为什么呢? 因为函数参数的求值顺序是和编译器相关的,并没有规定第一个k++先求职,第二个k++后求职。只是规定了参数的值必须求出来之后才进 阅读全文