关于存储空间的问题
我在学C语言时,对教程里的一些概念不太理解,如:1)教程里说“编译程序会为变量分配一定的存储单元”,我对这一句不理解,不是说程序只有加载到内存时才分配存储单元吗?编译只是生成一个可执行文
件,怎能给变量分配存储单元呢?
2)教程里常假设一个变量所占存储单元的起始地址为2000,这里“2000”客观存在吗?是不是物理内存存储单元的标识?
3)继上一个问题,我试图输出一个变量的地址值,因此编了下面一段程序:
#include"stdio.h"
main()
{
int a[2];
int *p;
p=a;
printf("p=%d\n",p);
printf("p+1=%d\n",p+1);
}
以上程序运行结果如下:
p=1245048
p+1=1245052
这些数值是内存单元的地址值吗?
敬请乐为人师的网友对上述问题一一作答,不胜感谢!