全局变量 extern 变量类型 变量名
静态变量 static 变量类型 变量名
寄存器变量 register 变量类型 变量名
// 当在主函数中重复使用全局变量加上extern
#include <stdio.h>
int a=10,b=1;//全局变量
int main()
{
extern int a=10,b=1;//在主函数中使用全局变量
printf("%d%d\n",a,b);//输出全局变量
return 0;
}
变量作用域,内存分配,生存周期
auto 自动分配内存
指针变量手动分配内存并先指向NULL然后free函数释放内存
#include <stdio.h>
#include <stdlib.h>
//指针变量手动分配内存 然后free函数释放内存
int main()
{
int *p=NULL;
p=malloc(sizeof(int));
if(p==NULL)
{
fprintf(stderr,"分配内存失败");
}
else
{
*p=100;
printf("%d\n",*p);
}
free(p);
return 0;
}
变量作用域
局部变量 在函数内有效
全局变量 在文件内有效
静态变量 在函数内有效
寄存器变量 存储在寄存器中 在函数内有效
内存各个区间组成
栈(stack)区 地址由上到下增大
堆(heap)区 地址由下到上增大
全局(静态)变量区
常量区