A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蜗牛的未来 中级黑马   /  2016-4-2 17:13  /  1048 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#import <stdio.h>

int add(int p){
   
    return (p++)+(++p);
   
}

int test(int (*p)(int)){
    return p(1);
   
}
int main(){
   
    int (*p1)(int);
    p1=add;
    int p2 = test(p1);
    printf("%d",p2);
   
    return 0;
   
}

求p2值

4 个回复

倒序浏览
Xcoad上跑一下:4
回复 使用道具 举报
我也看的云里雾里的
回复 使用道具 举报
好乱...
首先定义了一个函数指针int (*p1)(int)
这个指针效果和add一样  即p1()  == add()
然后test(p1)  就是  test(add())
这个函数返回add(1)
add(1)  就是(p++)+(++p)    p=1时的结果
p++的值是1  计算完后p=2  然后++p的值是3  
所以最后的结果是1+3  = 4
回复 使用道具 举报
看不懂,这程序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马