一.指向函数指针数组的指针
简单介绍一下(不做详解):
( int )(*pf)( int ,int ) //函数指针
( int )(*pfArr[5])( int ,int ) //函数指针数组
( int )(*(*p)[5])( int ,int ) =&pfArr //&pfArr函数指针数组的地址
//p就是指向函数指针数组的指针
例子:
二.回调函数
什么是回调函数?
回调函数就是一个通过 函数指针调用的函数 。如果你把函数的指针(地址)作为参数传递给另一个函数,当 这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应;
回调函数的例子:
三.数组笔试题

运行结果:
解析:
数组名的意义:1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,(里面单独放数组名,这个数组名才是整个数组的地址);2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址;3. 除此之外所有的数组名都表示首元素的地址;
运行结果分析:
字符数组 -1
运行结果:
运行结果分析:
字符数组-2
解析:
strlen函数是求字符串长度的,遇到 '\0'停止,返回'\0'之前的字符个数;
如果没有'\0'就会一直往后面找,直到遇到'\0';
注意:syrlen (const char * str), strlen函数的参数应该是被求长度的起始地址,syrlen (const char * str)
结果分析:
字符数组-3
运行结果:
解析:
字符串
char arr[ ]="abcdef" 数组里面存放的应该是 [a b c d e f \0] ,隐藏了一个 '\0'
运行结果分析:
字符指针 -1
运行结果:
解析:
字符指针
char * p = "abcdef" ; p存放的是首元素a的地址;
结果分析:
字符指针-2
运行结果:
解析:
二维数组
运行结果:
解析:
对于二维数组来说:
a[0]就是第一行这个一维数组的数组名;
a[1]就是第二行这个一维数组的数组名;
a[2]就是第三行这个一维数组的数组名;
结果分析: