马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 夜雨de街灯 于 2016-5-6 11:07 编辑
书上说函数指针有两个用途:调用函数和做函数的参数。
我有点不明白调用函数还不如直接使用它
例如:
#include<stdio.h>
void main(void)
{
int one(int a , int b); //声明函数one,形参为整形的a和b
int (*two)( ); //声明函数指针two
two=one; //one函数的地址赋值给函数指针two
(*two)(1 , 2); //调用函数指针two,实参为1和2
}
int one(int a , int b) //定义函数one,形参为整形的a和b
{
...... //内容
}
那还不如直接
#include<stdio.h>
void main(void)
{
int one(int a , int b); //声明函数one,形参为整形的a和b
one(1 , 2); //调用函数one,实参为1和2
}
int one(int a , int b) //定义函数one,形参为整形的a和b
{
...... //内容
}
还有就是函数做函数参数
例如:#include<stdio.h>
void main(void)
{
int one(int a ,int (*three)( )); //声明函数one,形参为整形的a和一个函数
int two(int b ,int c); //声明函数two,形参为整形的b和c
int (*three)( ); //声明函数指针three
three=two; //two函数的地址赋值给函数指针three
one(1 ,three(2,3)); //调用函数one,实参为1和函数two的指针
}
int one(int a , int (*three)()) //定义函数one,形参为整形的a和一个函数
{
...... //内容
}
作为参数其实是为了它的返回值吧,那直接放在one函数里引用two函数不就行了吗,为什么要通过指针这么麻烦
#include<stdio.h>
void main(void)
{
int one(int a); //声明函数one,形参为整形的a和一个函数
one(1); //调用函数one,实参为1
}
int one(int a ) //定义函数one,形参为整形的a
{
int two(int b ,int c); //声明函数two,形参为整形的b和c
two(2,3); //调用two函数,实参为2和3
............ //还有内容
}
能告诉我函数指针有什么作用吗,这样做的好处或者说意义,现在想想有点蒙了,之前用指针变量指向整型变量、字符型、数组。用指针有什么用吗?
汗死
钻牛角尖了 |