深信服的一道笔试题,C语言大神来看看
下列代码期望输出结果是1111,请找出fun1….fun4中存在的问题,并简单说明原因:int* fun1(int a){
int ret = a;
}
int* fun2(int a){
int* p = (int*)malloc(sizeof(int));
*p = a;
return p;
}
int* fun3(int a){
static int ret;
ret = a;
return &ret;
}
int* fun4(int a){
return &a;
}
int main()
{
printf(“%d”, *fun1(2)-*fun1(1));
printf(“%d”, *fun2(2)-*fun2(1));
printf(“%d”, *fun3(2)-*fun3(1));
printf(“%d”, *fun4(2)-*fun4(1));
return 0;
}
我主要对printf(“%d”, *fun3(2)-*fun3(1));
printf(“%d”, *fun4(2)-*fun4(1));
这两个输出的结果不明白,如果能详细分析这两个输出的结果的,给40分。