#include <stdio.h>
int main(void) {
int a = 1;
switch(a) {
int i = 2;
case 1: printf("%d",i);
break;
default: printf("Hello\n");
}
}
以下代码示例给出36作为输出。这怎么可能?我知道编译器会直接将控件转移到case 1,而不需要评估i
。但是,为什么我得到的输出为36? PS:我正在使用GCC。初始化switch语句中的变量
为什么在java下标记? – Curious
这将如何帮助? @GAURANGVYAS – Jarvis
我得到'0',所以我怀疑你触发了未定义的行为(至少在C中)。 –