C 中局部变量值和全局变量值的值

Values of local and global variable values in C

我似乎不明白这里发生了什么

#include <stdio.h>

int var = 5;

int main(){
    int var = var;
    printf("%d",var);
    return 0;
}

为什么当 var 的值为 5 时,此程序打印出垃圾值?

局部变量优先于全局变量。 所以编译器将其翻译为 (local) var = (local) var