|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
- ............ //还有内容
- }
复制代码
能告诉我函数指针有什么作用吗,这样做的好处或者说意义,现在想想有点蒙了,之前用指针变量指向整型变量、字符型、数组。用指针有什么用吗?
汗死
钻牛角尖了 |
|