局部变量的作用域:
1.主函数中定义的变量只能在主函数中使用,不能在其他函数中使用,同时,主函数也不能使用其他函数中定义的变量
2.形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量
3.允许在不同函数中使用相同变量名,它们代表不同的对象,分配不同的单元,也互不干扰
4.在复合语句中也可以定义变量,其作用域只在复合语句范围内
static与extern
static:用static进行修饰,该变量存放在静态数据区,其生命周期持续到整个程序执行结束,但是其作用域不发生变化,在用其修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
extern:当我们在本文件里引用一个外部声明的全局变量或函数,可以在其前面加上extern。在任何函数体外声明或定义变量时,不加extern可能时定义也可能是声明,但是加extern肯定是声明。
chara[]=”hello”;
intmain()
{
externint a;
printf(“%x\n”,a);
return0;
}
const:用来修饰变量时,表示该变量里的数据可以被访问,不能被修改。
auto: 在函数生命周期中声明的变量叫局部变量,也叫自动变量(这个变量放在内存栈中,声明入栈,使用完出栈,先进后出)。
register:用来修辞变量时,就意味着该变量会作为一个寄存器变量,让该变量的速度达到最快。
volatile:修饰变量后,每次对其值进行访问时,都会从内存里,寄存器里读取。
typedef:
使用的目的一般有两个,一个是给变量一个新名字,另一个是简化一些比较复杂的类型声明,