#include <stdio.h>

int i = 1;    /* i defined at file scope */

int main(int argc, char * argv[])
{   
        printf("%d\n", i);              /* Prints 1 */
        {
                int i = 2, j = 3;             /* i and j defined at block scope */
                                                      /* global definition of i is hidden */
                printf("%d\n%d\n", i, j);    /* Prints 2, 3 */
                {
                        int i = 0;  /* i is redefined in a nested block */
                                           /* previous definitions of i are hidden */
                        printf("%d\n%d\n", i, j); /* Prints 0, 3 */
                }
                printf("%d\n", i);           /* Prints 2 */
        }
        printf("%d\n", i);              /* Prints 1 */
        return 0;
}
