Báo cáo được đưa ra trước bất kỳ câu lệnh nào được dán nhãn case
trong khối switch-case
được xử lý. Xin giải thích hành vi của các chương trình sauLệnh chuyển đổi hoạt động như thế nào?
prog1:
#include<stdio.h>
int main()
{
switch(1)
{
int i=0;
case 1:printf("%d",i);
}
getchar();
return 0;
}
Output: giá trị rác.
prog2:
#include<stdio.h>
int main()
{
switch(1)
{
printf("Inside Switch");
case 1:printf("Case 1\n");
}
printf("Outside Switch");
getchar();
return 0;
}
Output:
Trường hợp 1
Outside Chuyển dữ liệu.
Báo cáo trước khi tuyên bố có nhãn có vẻ không thể truy cập theo chương trình 2 nhưng tại sao tôi không gặp lỗi cho biến chưa khai báo i
trong chương trình đầu tiên (chỉ cảnh báo).
Sẽ thực sự hữu ích nếu ai đó có thể giải thích chi tiết cách tuyên bố switch
được xử lý nội bộ.
Đây có phải là bài tập về nhà không? Nghe có vẻ như bài tập về nhà. Nếu vậy, hãy thêm thẻ 'bài tập về nhà' và hiển thị công việc của riêng bạn cho đến thời điểm này. –
@ T.J.Crowder Đây không phải là bài tập về nhà.Tôi đã xem qua điều này trong khi tham gia các bài kiểm tra C trên gild và tôi tò mò muốn biết. – Bazooka
Câu lệnh 'switch' về cơ bản là cú pháp đường cho một bảng nhảy với' goto's. –