1. 常见关键字

1.1 表格

char 字符型 auto default
int 整型 extern break 跳出所在的循环或语句块
float 单精度浮点型 if continue 跳过本次循环
double 双精度浮点型 else static 修饰变量或函数使之成为静态
short 短整型 while rigister
long 长整型 do typedef 为类型重命名
long long 更长的整型 for struct 结构体特征
signed 有符号整型 switch 选择语句 go to 跳转语句
unsigned 无符号整型 case union 联合
return 函数返回 sizeof 求所占的内存大小,字节为单位 enum 枚举

1.2 typedef

  • typedef是类型重命名,给数据类型一个新的名字。
typedef int num_int;
//typedef把int类型定义了一个新名字num_int

1.3 static

static可以修饰变量和函数

修饰局部变量是静态局部变量。
修饰全局变量是静态全局变量。
修饰函数是静态函数。

局部变量

不用static

#include <stdio.h>
void print(){
   
    int a = 1;
    a++;
    printf("%d ",a);
}
int main(){
   
    int i = 0;
    for(i = 0; i < 5; i ++){
   
         print();   
    }
    return 0;
}

a的结果都为2

使用static

#include <stdio.h>
void print(){
   
    static int a = 1;
    a++;
    printf("%d ",a);
}
int main(){
   
    int i = 0;
    for(i = 0; i < 5; i ++){
   
         print();   
    }
    return 0;
}

结果为:

用static修饰局部变量后,局部变量储存在了内存的静态区,只创建一次,生命周期从函数print内部变为直到整个程序运行结束。

全局变量

使用static修饰的全局变量具有本地性,只能在当前所在的源文件中使用,不能在别的源文件中使用。

函数

使用static修饰的函数具有本地性,只能在当前的源文件中被调用,不能被其他的源文件调用。

2. #define

2.1 #define定义字面常量

#define N 100

用N替换程序中所有的100,且便于修改

#include <stdio.h>
#define N 100

int main(){
   
    int a = N;
    printf("%d ",a);
    
    return 0
}

2.2 #define定义宏

#define Add(x,y) ((x) + (y))

用Add(x,y)替换((x) + (y)),完成两个数相加的功能,类似于函数。
#define定义的宏可以代替一些简单的函数。

#include <stdio.h>
#define Add(x,y) ((x) + (y))

int main(){
   
    int sum = Add(2,3);
    
    prinitf("%d\n",sum);
    
    return 0;
}


END