Giải thích kết quả của đoạn code về biến trong khối (scope) và biến trong hàm main

mình đang học c cơ bản.
mình vào trang này xem 1 vài tài liệu và đang thắc mắc https://cachhoc.net/2014/12/04/lap-trinh-c-bai-2-kieu-du-lieu-va-nhap-xuat-trong-c/
theo mình hiểu là sẽ xuất ra là

c=7 biến trong khối
c=4 biến hàm main

nhưng khi mình run thì lại là

c=7 biến trong khối
c=7 biến hàm main

ai giải thích giùm em với ạ
code :

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int a = 1, b = 5; // khai bao bien toan cuc, no se duoc dung o bat ky dau

int main()
{
    // khai bao 2 bien trong ham main, no se duoc dung trong toan bo ham main ke tu dong nay
    int c = 4, d = 6;

    {
        int e = 6, d = 8;
        c = 7;
        printf("gia tri cac bien trong khoi:\n");
        printf("e = %d \t d = %d \t c = %d\n", e, d, c);
    }

    printf("gia tri cac bien trong ham main:\n");
    printf("c = %d \t d = %d\n", c, d);

    printf("gia tri cac bien toan cuc:\n");
    printf("a = %d \t b = %d\n", a, b);

    // system("pause"); // sudung de dung man hinh neu ban dung dev-C
    return 0;
}

int c = 7;

Viết như thế thì mới là trong khối

2 Likes

cảm ơn bácccccccccccccccccccccccc

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?