c语言函数指针变量
导言: C语言规定函数总是占用连续的内存空间,函数名是该函数占用的内存空间的起始地址。 这就是函数指针变量。 我介绍一下仅供参考。
C语言规定函数总是占用连续的内存空间,函数名是该函数占用的内存空间的起始地址。 您可以将函数的第一个地址或条目地址指定给指针变量,以便指针变量指向该函数。 然后可以在指针变量中找到并调用这个函数。 指向此类函数的指针变量称为“函数指针变量”。
函数指针变量定义的一般格式如下。
类型说明符(*指针变量名) );
这里,"类型说明符"表示被指函数返回值的"类型"。 “*指针变量名称”表示“*”后面的变量是定义的指针变量。 最后一个括号表示指针变量指向函数。
例如int(*pf ) );
指示pf是指向函数入口的指针变量,该函数的返回值(函数值)是整数。
以指针格式实现函数调用的方法为例进行说明。
intmax(inta,int b ) {
if(ab )返回a;
else return b;
}
主()。
intmax(inta,int b );
int(*pmax ) );
int x、y、z;
pmax=max;
打印(inputtwonumbers :/n );
scanf('%d%d )、x和y );
z=(*pmax () x,y );
printf(maxmum=%d ),z );
}
从以上程序可以看出,以函数指针变量的形式调用函数的步骤如下。
1 .首先定义函数指针变量,如后面程序的第9行int(*pmax ) ); 将pmax定义为函数指针变量。
2 .将被调制函数的入口地址(函数名称)赋予该函数指针变量,如程序中第11行的pmax=max
3 .以函数指针变量形式调用函数的调用函数的典型形式,如程序第14行中的z=(*pmax () x,y ) ((*指针变量名) )实参表)使用函数指针变量时,请注意以下几点
a .函数指针变量不能进行算术运算。 这与数组指针变量不同。 如果将整数添加到数组指针变量中,则指针会指向后面或前面的数组元素,但函数指针的移动没有意义。
b .函数调用中必须有“(*指针变量名)”两边的括号。 其中的)不应该理解为评估运算,在这里只是显示符号。
【c语言函数指针变量】相关文章: