你看 都没人回你。
你已经快走火入魔了。
因为你刚学 没有足够的知识积累
所以没必要深究这些。
40页:“每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元”
既然要死抠字眼 那你也没抠对地方哇。 是能为其分配相应的,这个是和前半句的 确定的类型对应的。
被指定为char int 数组等等的某个
确定的类型,然后编译时就能为其分配相应的内存单元。
类型不确定 谁知道该给它分配什么样的存储单元呢。 这句的重点不是要告诉你编译时给它分配 而是告诉你要有确定的类型 才能给它分配相应的单元。
219页:“如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元”
就拿你很疑惑的局部变量来讲,你已经知道这个是在“动态分配”的栈区。
当然是在栈。
进入函数后 栈顶指针esp减小 分配了空间。
分配多少 这个就是在编译时确定的,编译器计算该函数所需的局部变量空间大小,并且用适当的方式进行优化。
因为编译时就明确了这个函数局部变量需要在栈中使用多少空间,所以当然可以说编译时分配。
到时候给你
在这儿整
点儿地方 ,不到时候不给你。何时 何地 数量 在编译时就都已经确定了,这才是局部变量空间 动态分配 的意思。另外一个 动态 的意思还包括在栈中是使用esp/ebp指针而不是像全局变量那样使用的是虚拟地址。
虽然尽量用简单直白的方式表达,恐怕你还是不能完全理解。还是那句,
没必要钻这些牛角尖,你这个问题发了好几个帖子,有这时间,都能看大半本书了。