指针运算:指针算法并不依赖于指针的类型,如,一个char指针p,p + 1指向下一个char,若p是一个指向float型的指针,则p+1指向下一个float。 因为指针再与一个整数在执行加法前,会根据合适的大小进行调整。比如若float占据4字节,则p+3,实际加到到指针上的整数值为12,也就是p+(3*4)
其次指针的算术运算仅限于两种形式,
第1种:指针 +或- 整数。
第2种:指针 - 指针。只有当两个指针指向同一数组中的两个元素时才允许相减,其结果是有符号整型值,表示两个指针在内存中的距离(是以数组元素长度为单位,不是以字节为单位,因为减法运算的结果将会除以数组元素类型长度)。指向不同数组元素的指针相减,没有任何意义,程序员应避免这种情况出现。
指针的关系运算(<、>、>=、<=)跟指针减法一样,只有在指向同一数值中的元素时,指针的关系运算才有意义。
7.函数
ADT和黑盒:这点还不是很清晰,待补充。。。
递归:递归的开销比较大,只是有时候用递归,代码显得更清晰而已,像计算阶乘和菲波那契数等在用递归比起用迭代循环时,可读性上并不占优势,而性能更是相差甚远,所以我们完全可以考虑用迭代循环的方式来解决。