C语言中const常变量可以改变其值?

C语言中使用输入函数scanf对常变量赋值,代码如下:

int main(void)
{
    const int AMOUNT = 25;
    scanf("%d", &AMOUNT);
    printf("%d", AMOUNT);
    return 0;
}

可以更改AMOUNT的值,这个能理解,因为是直接访问的AMOUNT的内存地址,但是把AMOUNT改为全局的,代码如下:

const int AMOUNT = 25;
int main(void)
{
    scanf("%d", &AMOUNT);
    printf("%d", AMOUNT);
    return 0;
}

这样来运行,为什么又会报异常不能运行呢?

const全局变量在静态区,直接或间接都不可修改
const局部变量在栈上,可以间接修改