(1)定义指向函数的指针变量,并不意味着这个指针变量可以指向任何函数,它只能指向在定义时指定的类型的函数。如“int(*p)(int,int);”表示指针变量p可以指向函数返回值为整型且有两个整型参数的函数。在程序中把哪一个函数(该函数的值是整型的且有
两个整型参数)的地址赋给它,它就指向哪一个函数。在一个程序中,一个指针变量可以先后指向同类型的不同函数
(2)如果要用指针调用函数,必须先使指针变量指向该函数。如:后指向同类型的不同函数。 p-max这就把max函数的入口地址赋给了指针变量p
(3)在给函数指针变量赋值时,只须给出函数名而不必给出参数,例如://将函数入口地址赋给P
因为是将函数入口地址赋给p,而不牵涉实参与形参的结合问题。如果写成
p=max(a,b);就错了。
p=max(a,b)的作用是将调用max函数所得到的函数值赋给p,而不是将函数入口地址赋给p
(4)用函数指针变量调用函数时,只须将(*p)代替函数名即可(p为指针变量名),在(*p)之后的括号中根据需要写上实参。例如: c=(*p)(a,b);
表示“调用由p指向的函数,实参为a,b。得到的函数值赋给c”。
请注意函数返回值的类型。从指针变量p的定义中可以知道,函数的返回值应是整型的,因此将其值赋给整型变量c是合法的。
(5)对指向函数的指针变量不能进行算术运算,如p+n,p++,p–等运算是无意义的。
C语言中使用指针时的一些注意事项
最新推荐文章于 2024-01-17 21:18:51 发布