7. 函数指针 1> C语言中函数名直接对应于函数生成的指令代码在内存中的地址,因此函数名可以直接赋给指向函数的指针。 2> 调用函数实际上等同于“调用指令+参数传递处理+回归位置入栈”,本质上最核心的操作是将函数生成的目标代码的首地址赋给CPU的PC寄存器。 3> 因为函数调用的本质是跳转到某一个地址单元的code去执行,所以可以“调用一个根本就不存在在函数实体。 4> int (*p);定义p是一个指向函数的指针变量,次函数返回带回整型的返回值。*P两侧的括号不能省略,表示p先于*结合,是指针变量,然后再与后面的结合,表示此指针指向函 区别:int *p表示这个函数的返回值是指向整型变量的指针。 说明: (1) 指向函数的指针变量的一般定义形式为: 数据类型 (*指针变量名); 1> 此处的“数据类型”是指函数返回值的类型 (2) 返回指针值的函数: 类型名 *函数名(参数表) eg: int * func(int x,int y) func是函数名,调用它以后能返回一个指向整型数据的指针。x,y是func的形参。区别方法: a.从右往左找第一个括号,括号里面的是函数的形参。 b.括号外面的第一个标识符是函数的名字,函数前面的表示函数的返回数值。
|