*关键字:不能自己创建关键字,不可以用关键字当变量名
auto是自动的,每个局部变量都是auto修饰,基本上都是被省略掉,为自动变量.
如:
int main()
{
auto int a=10;//自动创建,自动销毁,一般情况省略
return 0;
}
break--循环语句,const-- 修饰常变量(不能改变),default--表示默认,extern--声明外部变量
struct--结构体(联合体),typedef--定义类型,union--共用体,void--空
注意:define和include并不是关键字,而是预处理指令.
register--记存器
例:
int main()
{
register int num=100;//只是建议num的值存放在记存器中
return 0;
}
记存器->高速缓存(几十MB)->内存(8G-16G)->硬盘(500G)->网盘(2T)越往后读取速度越慢.
typedef--定义类型
例:
typedef unsigned int u_int;
int main()
{
unsigned int num=100;
u_int num2=100;
return 0;
}
static--修饰局部变量,修饰全局变量,修饰函数
例1:
void test()
{
int a=1;//a是局部变量,自动创建自动销毁
a++;
printf("%d",a);
}
int main()
{
int i=0;
while(i<5)
{
test();//d定义一个函数
i++;
}
return 0;
}
运行结果:22222
例2:
若static修饰全局变量,static int a=1
void test()
{
static int a=1;//a执行上一次保留下来的值不重新创建
a++;
printf("%d",a);
}
int main()
{
int i=0;
while(i<5)
{
test();//d定义一个函数
i++;
}
return 0;
}
运行结果:23456
static修饰局部变量,改变的是局部变量的生命周期,本质是改变存储类型.
例3:
全局变量在整个工程中都可以使用,在其他源文件中可以被使用因为全局变量具有外部连接属性,但是被static修饰的全局变量之后,其他源文件就不能链接到这个静态的全局变量,使得全局变量只能在自己所在的源文件内可用.
当static修饰函数时与它修饰全局变量一样,变为内部链接属性.