在网上找的面试题,有些语法错误,求结果大家给分析一下啊

szqh97 2011-05-17 09:02:33
#include<stdio.h>
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);//这两句是什么意思啊

void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jody_go 2011-05-17
  • 打赏
  • 举报
回复
110
就是考的函数指针,
kakane 2011-05-17
  • 打赏
  • 举报
回复
运行结果 110 打错了
kakane 2011-05-17
  • 打赏
  • 举报
回复

#include <stdio.h>
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*); //预定义指向函数的指针
void show(FUNC2 fun,int arg1, int*arg2)
{
FUNC1 *p=&inc; //指针p 指向 inc函数
int temp =p(arg1); //temp等于11
fun(&temp,&arg1, arg2);//这里其实就是multi(&temp,&arg1,&a)
printf("%d\n",*arg2);
}
int main()
{
int a;
show(multi,10,&a);
return 0;
}

正确代码为上 调试 vs2005 运行结果 100 写得这么麻烦 功能就是 10*11 将结果 存入&a 并输出
ryfdizuo 2011-05-17
  • 打赏
  • 举报
回复
#include <stdio.h>

int inc(int a)
{
return(++a);
}

int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}

// 这样写不对
//typedef int(FUNC1)(int in);
//typedef int(FUNC2) (int*,int*,int*);

// 两个函数指针定义
typedef int(*FUNC1)(int in);
typedef int(*FUNC2) (int*,int*,int*);

void show(FUNC2 fun,int arg1, int*arg2)
{
FUNC1 p = &inc;
int temp = p(arg1);
fun(&temp, &arg1, arg2);
printf("%d\n",*arg2);
}

int main()
{
int a;
show(multi,10,&a);

getchar();
return 0;
}
// 110
就想叫yoko 2011-05-17
  • 打赏
  • 举报
回复
google 函数指针
KID_coder 2011-05-17
  • 打赏
  • 举报
回复
typedef int(FUNC1)(int in);//一个函数类型:该类函数的形参为int in,返回值为int, 类型名为FUNC1
typedef int(FUNC2) (int*,int*,int*););//一个函数类型:该类函数的形参为int*,int*,int*,返回值为int, 类型名为FUNC2

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧