关于局部变量与全局变量同名的题
#include <stdio.h>int k = 1;void Fun();
void main()
{ int j;
for(j = 0; j < 2; j++)
Fun();
printf("k=%d", k);
}
void Fun()
{ int k = 1; /* 第11行 */
printf("k=%d,", k);
k++;
}
(17)程序的输出是 (17) 。
A、k=1,k=2,k=3 B、k=1,k=2,k=1
C、k=1,k=1,k=2 D、k=1,k=1,k=1
(18)将第11行改为“static int k=1;”后,程序的输出是 (18) 。
A、k=1,k=1,k=1 B、k=1,k=1,k=2
C、k=1,k=2,k=1 D、k=1,k=2,k=3
(19) 将第11行改为“k=1;”后,程序的输出是 (19) 。
A、k=1,k=2,k=1 B、k=1,k=1,k=1
C、k=1,k=1,k=2 D、k=1,k=2,k=3
(20) 将第11行改为“;”后,程序的输出是 (20) 。
A、k=1,k=1,k=2 B、k=1,k=2,k=3
C、k=1,k=1,k=1 D、k=1,k=2,k=1
谁能给我解释下19-20两个题??



定义时未加static限定词时,属自动型变量,在动态数据区分配空间,其随函数调用而存在,随函数调用结束而消失,不会在两次函数调用之间保持其值。每一次函数调用都必须重新分配内存单元,重新初始化。