标识符
标识符是用来标识变量、符号常量、数组、函数、文件等名字的有效字符序列。
C语言的标识符只能由字母、数字、下划线组成,且第一个字符必须为字母或下划线,不能为C语言中的关键字。
变量的定义
储存类型 数据类型 变量名;
int i;
float f1,f2,f3;//可以在一个类型说明符后定义多个同类型的变量
变量定义后,系统会根据变量数据类型为其分配对应大小的内存空间,程序可以通过变量名读写变量地址中的数据。
没有给变量赋初值不代表变量中没有值,直接使用这种变量可能会产生莫名其妙的结果。
变量的初始化
变量的初始化就是给变量赋初值的过程。
int i=1;//在定义变量时进行初始化
int i;
i=1;//在定义变量后进行初始化
变量的作用域与储存类别
局部变量:在函数内定义的变量,作用域是本函数内。
全局变量:在函数外定义的变量,作用域从定义处开始,到本程序文件结束。
动态储存方式:在程序运行期间由系统动态地分配储存空间。(在函数调用时才分配空间,调用结束后空间立马释放。
静态储存方式:在程序运行期间由系统分配固定的储存空间。
局部变量的储存类别
自动变量(auto):函数中的形参和局部变量默认为自动变量,采用动态储存方式。
静态局部变量(static):采用静态储存方式。
寄存器变量(register):采用动态储存方式,变量值存储在CPU寄存器中,而非内存中。
全局变量的存储类别
全局变量的储存类别是静态储存方式。
将全局变量作用域扩展到整个文件:extern 数据类型 变量名
#include<stdio.h>
int main()
{
extern int x;
printf("%d",x);
return 0;
}
int x=1;
将全局变量作用域扩展到其他文件:
文件1
#include"file2.cpp"
int x=1;
int main()
{
fun();
return 0;
}
文件2
#include<stido.h>
extern int x;
void fun()
{
printf("%d",x);
}
将全局变量作用域限制在本文件内:使用static 声明全局变量
static int x=1;
变量的引用
在引用变量时,优先引用当前函数内的局部变量,再引用全局变量。