黄钰筑裸体写真:C语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 03:53:09
高手进~~下面的程序错在哪里???
#include<stdio.h>
typedef void (*FUN)(char*,int);
void* fun(char* ch,int n)
{
printf("Hello%s%d",ch,n);
return NULL;
}
int main()
{
int n=0;
char* ch="\tWorld!\\";
FUN C;
C=(FUN)fun(ch,n);
C("\65\66\67",3);
getchar();
return 0;
}

C=(FUN)fun(ch,n);这句有问题
fun(ch,n)返回一个无类型指针,该指针为空;
而这句赋值做完后C==NULL
还有就是定义FUN时类型和fun不匹配,程序修改了一下,
你想要的是这个意思吗?

#include<stdio.h>

typedef void* (*FUN)(char*,int);

void* fun(char* ch,int n)
{
printf("Hello%s%d",ch,n);
return NULL;
}

int main()
{
int n=0;
char* ch="\tWorld!\\";
FUN C;
fun(ch,n);
C=fun;
C("\65\66\67",3);
getchar();
return 0;
}

C=(FUN)fun(ch,n); //这句错误。

正解:

C=(FUN)fun;

可以 fun(ch, n);
但是不能 C("\65\66\67",3);