-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
auto,static,register 分析
auto 变量存储在程序的栈中 , 默认属性
static 变量存储在程序静态区中
register 变量请求存储于CPU
#include <stdio.h>
int main()
{
auto int i = 0;
register int j = 0;
static int k = 0;
return 0;
}
第二:
auto即C语言中局部变量的默认属性
编译器默认所有的局部变量都是auto的
第三:
register 变量的必须是CPU寄存器可以接受的值
不能用&运算符获取register变量的地址
第四:
static 修饰的局部变量存储在程序静态区
static 的另一个意义是文件作用域标示符
―static 修饰的全局变量作用域只是声明的文件中
―static 修饰的函数作用域只是声明的文件中
#include <stdio.h>
int g = 0;
int m =0;
void f1()
{
int i = 0;
i++;
printf("%d\n",i);
}
void f2()
{
static int i = 0 ;
i++;
printf("%d\n",i) ;
}
int main()
{
auto int i = 0;
register int j = 0;
static int k = 0;
for(i=0;i<5;i++)
{
f1();
}
for(i=0;i<5;i++)
{
f2();
}
return 0;
}