1. 头文件里面尽量不定义变量,不然引入头文件时会报多重定义变量
2. 前缀递增递减和*优先级相同,从右到左;
*p++ 先取指针p指向的值,再将指针p自增1;
(*p)++ 先取指针p指向的值,再将该值自增1;
*++p 先将指针p自增1,*操作再取出该值;
++*p 先取指针p指向的值,再将该值自增1;
*p++
由于++和同等优先级,结合方向为自右向左,因此它等价与(p++)。先引用p的值,实现*p的运算,然后再使p自增1。
(p++)与(++P)
前者是先取p的值,然后使p加1。后者是先使p加1,再取p 。若p的初值为&a[0],输出*(P++),得到a[0]的值。输出*(++p),得到a[1]的值
++(*P)
表示p所指的元素加1,如果p = a , 则++(*p)相当于++a[0],若a[0]的值为3,则在执行++(*p)后a[0]的值为4。注意是元素a[0]的值加1,而不是指针p的值加1。
(P–)与(–P)
*(P–):先对p进行“*”运算,再使p自减。
*(–P):先使p自减,再进行“*”运算。
3. 迭代:是函数内某段代码实现循环,用前一次或前几次的结果计算下次或下几次的结果,到达计数终止或遇终止条件退出循环;
4. 递归:指函数调用函数本身,使用终止条件结束,逐层返回,可用于多次尝试一个操作,直到成功或者到达计数,中途成功可退出;
5. 回调函数:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。