C语言的一道程序题!!!看不懂为什么!!求解释详细,谢谢!! 5
32.以下程序的输出为(C)。inta=2;intf(int*a){return(*a)++;}voidmain(){ints=0;{inta=5;s+=f(&a);}s...
32. 以下程序的输出为(C )。
int
a=2;
int f(int *a)
{
return(*a)++;
}
void main()
{
int s=0;
{int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d %d\n",a,s);
}
A:2 7
B:2 10
C:3 7
D:3 11 展开
int
a=2;
int f(int *a)
{
return(*a)++;
}
void main()
{
int s=0;
{int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d %d\n",a,s);
}
A:2 7
B:2 10
C:3 7
D:3 11 展开
16个回答
展开全部
这涉及到两个问题
1 return之后是不会再执行++操作的
2 局部优先原则,但是局部变量只在声明他的局部有效,出了这个局部就失效了
1 return之后是不会再执行++操作的
2 局部优先原则,但是局部变量只在声明他的局部有效,出了这个局部就失效了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的a是全局的a,第一个s+ 计算的s= 0 + 5;第二个s = 5 +2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
局部变量全局变量 呵呵 上面解释的很清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我认为是3,9,求大神解答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |