帮忙运行下程序,不知道对不(c语言)

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:02:11
#include<stdio.h>
struct a
{int h;
char *p;}
struct a *aa(struct a *pp){
scanf("%d",&pp->h);
return &pp->h;}
main(){
struct a p,*pa=&p;
int (*paa)(),*t;
paa=*aa;t=(*paa)(pa);
printf("%d",*t)
}像这样的程序在语法中有错误么?

这样的写法,用wintc编译器能编译成功,不过你要先吧漏掉的分号给补上:struct a
{int h;
char *p;};/*这个分号*/
printf("%d",*t);/*这个分号*/
这些标点应该是你在打字的时候漏的
这样的写法在语法上面明显是存在错误的:函数aa定义是返回类型为结构体a的指针,可你却返回了结构体里面int的指针;只是因为两者虽然是不同类型的指针,但其都是指针,占用内存都一样,编译器才能编译出来,他应该也会提醒你有这错误存在的。
简单的来说,就是函数aa的返回值出错