C |存储类和类型限定符|问题9

输出

null

#include <stdio.h>
int fun()
{
static int num = 16;
return num--;
}
int main()
{
for (fun(); fun(); fun())
printf ( "%d " , fun());
return 0;
}


(A) 无限循环 (B) 13 10 7 4 1 (C) 14 11 8 5 2 (D) 15 12 8 5 2 答复: (C) 说明: 自从 号码 是静止的 乐趣 ,旧的价值观 号码 为后续函数调用保留。还有,自从声明返回 号码 –是后缀,它返回 号码 ,并更新下一次函数调用的值。

fun() called first time: num = 16 // for loop initialization done;


In test condition, compiler checks for non zero value

fun() called again : num = 15

printf("%d ", fun());:num=14 ->printed

Increment/decrement condition check

fun(); called again : num = 13

----------------

fun() called second time: num: 13 

In test condition,compiler checks for non zero value

fun() called again : num = 12

printf("%d ", fun());:num=11 ->printed

fun(); called again : num = 10

--------

fun() called second time : num = 10 

In test condition,compiler checks for non zero value

fun() called again : num = 9

printf("%d ", fun());:num=8 ->printed

fun(); called again   : num = 7

--------------------------------

fun() called second time: num = 7

In test condition,compiler checks for non zero value

fun() called again : num = 6

printf("%d ", fun());:num=5 ->printed

fun(); called again   : num = 4

-----------

fun() called second time: num: 4 

In test condition,compiler checks for non zero value

fun() called again : num = 3

printf("%d ", fun());:num=2 ->printed

fun(); called again   : num = 1

----------

fun() called second time: num: 1 

In test condition,compiler checks for non zero value

fun() called again : num = 0 => STOP 

这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享