|  | 
 
| 
本帖最后由 夜雨de街灯 于 2016-5-6 11:07 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 书上说函数指针有两个用途:调用函数和做函数的参数。
 
 我有点不明白调用函数还不如直接使用它
 例如:
 
 
 复制代码#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
     ............                        //还有内容
}
 能告诉我函数指针有什么作用吗,这样做的好处或者说意义,现在想想有点蒙了,之前用指针变量指向整型变量、字符型、数组。用指针有什么用吗?
 汗死
   
 
 钻牛角尖了
   | 
 |