W jaki sposób są traktowane instrukcje, które poprzedzają instrukcje oznaczone etykietą case
w bloku . proszę wyjaśnić zachowanie następujących programówJak działa instrukcja switch?
prog1:
#include<stdio.h>
int main()
{
switch(1)
{
int i=0;
case 1:printf("%d",i);
}
getchar();
return 0;
}
wyjściowe: wartość śmieci.
prog2:
#include<stdio.h>
int main()
{
switch(1)
{
printf("Inside Switch");
case 1:printf("Case 1\n");
}
printf("Outside Switch");
getchar();
return 0;
}
wyjściowa:
Przypadek 1
zewnętrzny przełącznik.
Instrukcje przed instrukcją oznaczoną jako case wydają się nieosiągalne zgodnie z programem 2, ale dlaczego nie otrzymam błędu dla niezadeklarowanej zmiennej i
w pierwszym programie (tylko ostrzeżenie).
Byłoby bardzo pomocne, gdyby ktoś mógł wyjaśnić szczegółowo, w jaki sposób wewnętrznie traktowane jest oświadczenie switch
.
Czy to zadanie domowe? To brzmi jak zadanie domowe. Jeśli tak, dodaj tag 'homework' i pokaż swoją dotychczasową pracę. –
@ T.J.Crowder To nie jest praca domowa. Natknąłem się na to podczas robienia quizu C na gildii i jestem ciekawy. – Bazooka
Instrukcja 'switch' jest w zasadzie syntaktycznym cukrem dla tabeli skoków z' goto's. –