9-初识常见关键字
C语言关键字
1、C语言提供的关键字。不能自己创建关键字
2、变量名不能是关键字

关键字auto
对于局部变量,每个局部变量都是auto形式,auto是自动的意思。因为变量都这样(局部变量都是自动创建自动销毁),所以auto被忽略,可以省略掉
注:auto还有其它用法
#include <stdio.h>
int main()
{
auto int arr = 5; //auto在这里代表的是自动创建,自动销毁(变量)
int arb = 6;
printf("%d\n",arr);
printf("%d\n",arb);
return 0;
}

Break
跳出循环
Case
和Switch搭配使用
Char
字符类型
const
修饰变量,变成常变量
continiu
继续
default
默认
do
do while循环
double
双精度
else
否则
enum
枚举类型
extern
是用来声明外部符号的
float
单精度浮点型
for
for循环
goto
if
int
register
寄存器关键字
#include <stdio.h>
int main()
{
register int num = 100;//建议num的值存放在寄存器中
//计算机中的数据可以存放到硬盘、内存、缓存、寄存器(越往后面速度越快,大小越小,造价也越高)
//大量、频繁被使用的数据,想放在寄存器中,提升效率
printf("%d\n",num);
return 0;
}

Return
返回
Short
短整型
signed
有符号位
Unsiged
无符号位
static
静态的
1、static修饰局部变量
#include <stdio.h>
void test()
{
int a = 1;
a++;
printf("%d", a);
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
//每调用一次test函数,局部变量a都=1,都会创建局部变量a并且赋值为1。第一次打印a=1->a=2。第一次调用完后就销毁掉变量a。
return 0;
}
#include <stdio.h>
void test()
{
static int a = 1;
a++;
printf("%d", a);
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
//每调用一次test函数,因为有static关键字的存在,所以局部变量a不会被自动销毁,所以会被累加上去,所以局部变量a的生命周期变长了
return 0;
}
static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)
内存划分成:栈区、堆区、静态区
栈区存放局部变量、函数的参数
堆区存放动态内存的分配
静态区存放全局变量的static修饰的静态变量

当我们使用static做变量的修饰时,本质上其实是把变量从存放栈区变成存放在静态区,因为静态区内static修饰的静态变量和全局变量的生命周期一样长(也就是程序没结束,static不销毁)。所以本质上,static修饰局部变量改变的是变量在内存中存放区域以此来改变生命周期
2、static修饰全局变量
static修饰全局变量,让这个全局变量只能在被修饰的全局变量所在的源文件.c内部可以使用,其它源文件不可以使用。
注:全局变量,在其它源文件内部可以被使用,是因为全局变量具有外部链接属性,但是当它被static作修饰后,就变成了只具有内部链接属性,其它源文件就不能链接到这个具有静态的属性的全局变量了


3、static修饰函数
static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其它源文件内使用。
本质上:static是将函数的外部链接属性变成了内部链接属性!(与static修饰全局变量一样)

struct
结构体语句
typedef
typedef顾名思义是类型定义,这里应该理解为类型重新定义
#include <stdio.h>
typedef unsigned int u_int;
int main()
{
unsigned int num = 100;
u_int a = 50;
printf("%d\n",num);
printf("%d\n",a);
return 0;
}

union
联合体(共用体)
void
无-空
volatile
while
关于Define和include
define
预处理指令:在预编译期间处理的指令,称之为预处理指令
include
预处理指令

浙公网安备 33010602011771号