Vidyalelo
C Programming · Q27

C Miscellaneous

Programming · C Programming · question 27

Q27

Determine Output: void main() static int i=5; if(--i) main(); printf("%d ", i);

A.
5 4 3 2 1
B.
0 0 0 0
Answer
C.
Infinite Loop
D.
None of These

Answer: Option B

Solution

Answer: Option B
Solution:
The variable "i" is declared as static, hence memory for I will be allocated for only once, as it encounters the statement. The function main() will be called recursively unless I becomes equal to 0, and since main() is recursively called, so the value of static I ie., 0 will be printed every time the control is returned.