C语言指针一道选择题,求解释
下面几个选项中的代码能通过编译的是:A)int*fun(){ints[3]={1,3,4};;returns;}intmain(){int*result;result=f...
下面几个选项中的代码能通过编译的是 :
A)int* fun()
{
int s[3]={1,3,4};;
return s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
B)int& fun()
{
int s[3]={1,3,4};;
return s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
C)int* fun()
{
int s[3]={1,3,4};;
return &s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
D)int& fun()
{
int s[3]={1,3,4};;
return &s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
这一提求解释~谢谢~ 展开
A)int* fun()
{
int s[3]={1,3,4};;
return s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
B)int& fun()
{
int s[3]={1,3,4};;
return s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
C)int* fun()
{
int s[3]={1,3,4};;
return &s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
D)int& fun()
{
int s[3]={1,3,4};;
return &s;
}
int main()
{
int * result;
result = fun();
for(int i =0;i<3;i++)
printf("%d\n",result[i]);
return 0;
}
这一提求解释~谢谢~ 展开
3个回答
展开全部
答案是A吧
B,D中int& fun()是错误的,不能这么定义
C中因为s为数组的名称,也是第一个元素的首地址,并不需要取地址符号&
但是A应该也得不到正确的答案(输出1,3,4),只是编译时能通过
B,D中int& fun()是错误的,不能这么定义
C中因为s为数组的名称,也是第一个元素的首地址,并不需要取地址符号&
但是A应该也得不到正确的答案(输出1,3,4),只是编译时能通过
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择A
B 中int& c语言里没有这种类型,c++中有叫做引用
C fun函数返回的是指针的指针,而主函数中接收的是int类型的指针,类型不匹配
D 同B
B 中int& c语言里没有这种类型,c++中有叫做引用
C fun函数返回的是指针的指针,而主函数中接收的是int类型的指针,类型不匹配
D 同B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A
返回值需要与函数类型一致
就是说int* fun() return s; 得一致
返回值需要与函数类型一致
就是说int* fun() return s; 得一致
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询