C语言static关键字
C语言static关键字
static关键字的作用,主要从在程序的生存周期、作用域和在代码段中的位置起作用。
全局变量 | 静态全局变量 | 局部变量 | 静态局部量 | |
---|---|---|---|---|
生存周期 | 程序运行到结束 | 程序运行到结束 | 函数调用到函数返回 | 函数调用到程序结束 |
作用域 | 所有文件 | 只在当前文件可以访问 | 函数内部 | 函数内部 |
代码段中的位置 | 全局数据段 | 全局数据段 | 栈 | 全局数据段 |
数据段:
- .data:全局变量已初始化且不为0、静态变量、字符串常量。
- .bss :未初始化或初始化为0的全局变量
栈: 局部变量、形参等。
分析下面代码中指针变量和字符串的存储位置
int main()
{
char str1[] = "Hello world!";
char *str2 = "Hello world!";
char *str3 = (char*)malloc(128);
}