2.1 关键字
2.1.1 数据类型相关的关键字
-
用于定义变量或者类型
-
类型 变量名;
-
char 、short、int、long、float、double、 struct、union、enum、signed、unsigned、void
-
char 字符类型 ,用char定义的变量是字符类型变量,占1个字节
char ch=‘a’; =为赋值
char ch1 = '1'; 正确的 char ch2 = '1233'; 错误的
-
short 短整型,使用short 定义的变量是短整型变量,占2个字节
short int a = 11; // 范围: -32768 ~ 32767
-
int 整型,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占2个字节
int a = 44; // 范围: -20亿 ~ 20亿
-
long 长整型,用 long 定义的变量是长整型的,在32位系统下占4个字节
long int a = 66;
-
float 单浮点型(实数),用float定义的变量是单浮点型的实数,占4个字节
float b = 3.8f;
-
double 双浮点型(实数),用double定义的变量是双浮点型的实数,占8个字节
double b = 3.8;
-
struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型,以后结构体再写
-
union 这个关键字是与共同体(联合体)相关的关键字,以后再讲
-
enum 与枚举类型相关的关键字 以后讲
-
signed 有符号(正负)的意思
在定义 char、整型(short、int、long)数据的时候用signed修饰,代表咱们定义的数据是由符号的,可以表存正数,也可以保存负数
singned int a = 10; singend int b = -6;
注意: 默认情况下 signed 可以省略 即 int a = -10; //默认a就是有符号类型的数据
-
unsigned 无符号的意思
unsigned int a = 101; unsigned int b = -101; //错误
-
扩展:内存存储
-
char ch = ‘a’; // 占1个字节,存储的是97
-
char a = 'a'; char b = 97; //这两个是相同的
-
-
void 空类型的关键字
char、int、float 都可以定义变量
void 不能定义变量,没有void类型的变量
void 是用来修饰函数的参数或者返回值,代表函数没有参数或者返回值
void fun(void) { }
- 代表fun函数没有返回值,fun函数没有参数
-
2.1.2存储相关关键字
register、static、const、auto、extern
-
register 是 寄存器的意思,用register修饰的变量是寄存器变量.
即: 在编译的时候告诉我们这个变量是寄存器变量, **尽量**将其存储空间分配在寄存器中.
注意:
-
定义的变量不一定真的放在寄存器中.
-
CPU取数据的时候取寄存器中拿数据比去内存中拿数据要快.
-
因为寄存器比较宝贵,所以不能定义寄存器数组.
-
register 只能修饰 字符型及整型的,不能修饰浮点型.
register char ch; register short int b; register int c; register float d; //错误的
-
因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器变量取地址. 因为只有存放在内存中的数据才有地址.
register int a; int *p; p=&a; //错误的 a可能没有地址
-
-
static 是静态的意思
static 可以修饰全局变量、局部变量、函数
这个以后讲
-
const 是常量的意思
用 const 修饰的变量是只读,不能修改
-
auto int a; 和 int a 是等价的,auto关键字 现在基本上不用
-
extern 是外部的意思,一般用于函数和全局变量的声明,这个在后面的课程中会用到
2.1.3控制语句相关的关键字
if、else、break、continue、for、while、do、switch、
case、goto、default
2.1.4其他关键字
sizeof、typedef、volatile
-
sizeof 用来测变量、数组的占用存储空间的大小(字节数)
int a = 10; int num; num = sizeof(a);
-
typedef 重命名相关的关键字
#include<stdio.h> // 把 short int 重命名为 INT16 typedef short int INT16; int main() { short int b = 101; // 使用 INT16 声明 INT16 c = 111; printf("b=%d\n",b); printf("c=%d\n",c); return 0; }
- typedef 原类型名 自定义类型名
-
volatile 易改变的意思
用volatile定义的变量,是易改变的,即告诉CPU每次用 volatile变量的时候,重新去内从中取保证的是最新的值,而不是寄存器中的备份。
volatile 关键字现在很少适用
volatile int a = 10;
扩展知识: 命名规则.
-
在C语言中给变量命名和函数起名的时候,由字母、数字、下划线构成
-
必须以字母或者下划线开头
-
Linux 风格 stu_num
-
驼峰风格 StuNum
-
大小写敏感.
-