int fun(int a)
{
int b=0;
static int c=3;
a=( c++, b++) ;
return(a);
main()
{
int i,k,a=2;
for(i=0;i<2;i++)
k=fun ( a++ );
printf(" % d\n ",k );
请问此函数如何调用k=fun ( a++ ),详解,谢谢。
答案:3 悬赏:0 手机版
解决时间 2021-02-20 06:27
- 提问者网友:你独家记忆
- 2021-02-19 23:37
最佳答案
- 五星知识达人网友:思契十里
- 2021-02-20 00:01
k=fun ( a++ );一共调用了2次,一次a=2,一次a=3,
a=( c++, b++) ; 等价于a=b++; b =0;
所以每次调用都返回0
k=fun ( a++ );最后一次调用函数时的返回值
最后k也输出0
a=( c++, b++) ; 等价于a=b++; b =0;
所以每次调用都返回0
k=fun ( a++ );最后一次调用函数时的返回值
最后k也输出0
全部回答
- 1楼网友:廢物販賣機
- 2021-02-20 02:35
第一次,a = 2,执行完return 的值为3,此时a=3.c=4,第二次a = 3,return的值为4,所以k = 4,C是static是静态的,只初始化一次,所以第一次执行完,C= 4,第二次执行完,C = 5,再说说c++, a = c++,执行顺序是a = c。c再加1.所以retrun的值为4,但是C的值是为5
- 2楼网友:持酒劝斜阳
- 2021-02-20 01:23
输出结果还是0的。fun函数里面,b只是一个局部变量,a=( c++, b++) ;里面是个逗号表达式,值是b++ 的结果。所以每次执行完都是将0赋给a,然后b+1,但是退出fun之后,b的 值还是0.
再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯