关键字不能与变量名冲突
auto(自动)
#include
int main()
{
int a=10;//局部变量---a自动创建,自动销毁的,也叫自动变量,隐藏掉了auto,
本来是auto int a=10;通常省略
return 0;
}
break
循环里面可以停止循环,
case
char 字符类型
const 常变量
continue 继续 循环里的
default 默认
do do while循环
double double类型
else if else 语句
enum 枚举
extern 引入外部符号
float 单精度浮点数
for for循环
goto goto 语句
int 整型
long 长整型
register 寄存器
计算机要存储数据可以存在:硬盘,内存,高速缓存,寄存器
访问速度依次变快,空间越来越小,CPU中央处理器-首先从内存拿数据
register int a=10;//建议a定义为寄存器变量,不是最终结果,编译器自己判断
return 返回
short 短整型
signed
int a=-2;
int定义的变量是有符号的
int其实为signed int;只是把signed省略掉了,
unsigned int num=0;//num为无符号数,一个数字如果没有符号位,那他就不存在正负之分,这个数字永远是正数,即使放一个负数,num还是正数
sizeof 计算大小
static静态
struct结构体关键字
switch switch case语句
typedef 类型定义
union联合体或共用体
unsigned无符号
void 无,空
volatile--用得少且难
typedf 类型定义(类型重定义)
typedf unsigned int u int //把unsigned int重新取了个名字u int 完全等价
unsigned int num1=20;
u int num2=2;
num1与num2完全一样
关键字static
用来修饰变量和函数
1.修饰局部变量-静态局部变量
2.修饰全局变量-静态全局变量
3.修饰函数-静态函数
#include
viod test()
{
int a=1;//局部变量
a++;
printf("a=%d\n",a);打印222222,每次打印完后被销毁,生命周期
}
int main()
{
int i =0;
while (i
{
test();//调用test函数,a=2,
i++;
return 0;
}
结果是5个2
加入static
修饰局部变量,局部变量生命周期变长
#include
viod test()
{
static int a=1;//a是一个静态局部变量
a++;
printf("a=%d\n",a);//打印23456,每次打印之后保存下来,不被销毁
}
int main()
{
int i =0;
while (i
{
test();//调用test函数,a=2,
i++;
return 0;
}
结果是23456
static 修饰全局变量
第一个源文件
int g_val=2020;//在这个源文件里定义一个全局变量
另一个源文件
int main()
{
extern int g_val;声明一下另一个源文件的全局变量//extern--声明外部符号的
printf("%d\n",g_val);
return 0;
}
结果是g_val2020//全局变量,只要在其他源文件中声明,可以调用到
若加上static
第一个源文件
static g_val=2020;//全局变量加上static
结果会发生错误,无法解析外部符号
static修饰时,无法在外部使用,改变了作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就无法再使用
static修饰函数
在第一个源文件定义一个函数
int Add (int x,int y)
{
int z =x+y;
return z;
}
第二源文件//声明外部函数
extern int Add(int,int);
int main()
{
int a=10;
int b=20;
int sum= Add(a,b)//引用函数
printf("sum=%d\n",sum);
}
return 0;
结果是30,
加入static
static int Add (int x,int y)
{
int z =x+y;
return z;
}
后果是无法解析外部符号,static修饰函数,改变了函数的链接属性,普通正常的函数是有外部链接属性的,static修饰后就变成了内部链接属性
#define定义常量和宏
#include
#define MAX100;// #define定义标识符常量 ,没有=
int main()
{
int a=max;
return 0;
}
#define定义宏---带参数
#include
int MAX(int x,int y)
{
if (x>y)
return x;
else
return y;
}
int main()
{
int a=10;
int b=20;
//函数
int max=MAX(a,b);
printf("max=%d\n",MAX);
//宏的方式
max=MAX(a,b);
printf("max=%d\n",MAX);
return 0;
}
宏的方式
#include
#define MAX(x,y) (X>Y?:Y)
int main()
{
int a=10;
int b=20;
//函数
int max=MAX(a,b);
printf("max=%d\n",MAX);
//宏的方式
max=MAX(a,b); //max=(a>b?a:b)
printf("max=%d\n",MAX);
return 0;
}