单片机的存储区范例
int main( )
{
short b;//b放置在栈上,占用2个字节
char a[100];//需要在栈上开辟100个字节,a的值是其首地址
char s[]=”abcde”;//s在栈上,占用4个字节,“abcde”本身放置在只读数据存储区,占6字节。s是一个地址
//常量,不能改变其地址数值,即s++是错误的。
char *p1;//p1在栈上,占用4个字节
char *p2 ="123456";//"123456"放置在只读数据存储区,占7个字节。p2在栈上,p2指向的内容不能更
//改,但是p2的地址值可以改变,即p2++是对的。
static char bss_2[100]; //局部未初始化数据段
static int c=0 ; //局部(静态)初始化区
p1 = (char *)malloc(10*sizeof(char)); //分配的内存区域在堆区
strcpy(p1,”xxx”); //”xxx”放置在只读数据存储区,占5个字节
free(p1); //使用free释放p1所指向的内存
return 0;
}