全局变量/局部变量初始化问题

老师,之前晚课上面讲:
1.对于全局变量A=2;它的值只有一份在数据段,程序运行时将其从flash上复制到内存,我的理解是,这个值也应该有两份啊 ,一份是初始值在flash,之后被复制到了内存(第二份);

2.对于局部变量这个理解,如果局部变量较大,初始值在flash,之后执行此函数时会将其复制到栈,这就是两份,如果局部变量值比较小,会跟随指令(在指令里面嵌入初始值)一起复制到栈上,这就是只有一份。

老师不知道理解的是否正确???

  1. 是的,有两份
    2.如果局部变量比较简单,会嵌在指令里给栈里的变量赋值,可以认为只有1份

那老师 上次晚课里面为什么说全局变量的值只有一份啊