C语言--关键字

目录

一、关键字

(一)数据类型相关的关键字

[(二) 存储相关关键字](#(二) 存储相关关键字)

(三)控制语句相关的关键字

(四)其他关键字


一、关键字

(一)数据类型相关的关键字

用于定义变量或者类型
类型 变量名;
char 、short、int 、long 、float、double、struct、union、enum 、signed、unsigned、void
1、char 字符型,用char 定义的变量是字符型变量,占1 个字节
char ch='c';正确
char ch1= '2'; 正确
char ch2 = '124' ; 错误的

2、short 短整型,用short 定义的变量是短整型变量,占2 个字节

short int a=12;

3、int 整型,用int 定义的变量是整型变量,在32 位系统下占4 个字节,在16 位系统下占2 个字节
int a=4;

4、long 长整型用long 定义的变量是长整型的,在32 位系统下占4 个字节
long int a=6;

5、float 单浮点型(实数),用float 定义的变量是单浮点型的实数,占4 个字节
float b=3.5f;

6、double 双浮点型(实数),用double 定义的变量是双浮点型的实数,占8 个字节
double b=2.8;

7、struct 是与结构体类型相关的关键字,可用它来定义结构体类型;

8、union是与共用体(联合体)相关的关键字;

9、enum 与枚举类型相关的关键字;

10、signed 有符号(正负)的意思
可在定义char 、整型(short 、int、long) 数据的时候会用signed 修饰,代表定义的数据是有符号的,可以保存正负数
例:

signed int a=2;
signed int b=-4;
注意:默认情况下signed 可以省略;

在定义char 、整型(short 、int、long) 数据的时候用unsigned 修饰,代表咱们定义的数据是无符号类型的数据
只能保存正数和0。
unsigned int a=11;
unsigned int a=-11; //错误

12、void 空类型的关键字
与char、int 、float 都可以定义变量不同,void 不能定义变量,没有void 类型的变量
void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
例:
void fun(void){ }
代表fun 函数没有返回值,fun 函数没有参数

(二) 存储相关关键字

register、static、const、auto、extern

1、因为register 是寄存器的意思,所以用register 修饰的变量就是寄存器变量咯
即:在编译的时,让编译器知道这个变量是寄存器变量,是编译器尽量将存储空间分配在寄存器中。
注意:
(1)定义的变量不一定真的存放在寄存器中,他只是起到一个提醒的作用,尽量存放。
(2)至于为啥要将变量存到寄存器当中,主要是因为cpu 取数据的时在寄存器中比去内存中拿数据快
(3)为什么又只能让编译器尽量将变量存到寄存器,而不是直接放,这是因为寄存器比较宝贵,所以不能定义寄存器数组
(4)并且register 只能修饰字符型及整型的,不能修饰浮点型

register char ch;
register short int d;
register int a;
register float d;//错误的
(5):因为register 修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器变量取地址。因为只有存放在内存中的数据才有地址
register int a;
int *p;
p=&a;//错误的,a 可能没有地址

2、static 是静态的意思
static 可以修饰全局变量、局部变量、函数

3、const
const 是常量的意思
用const 修饰的变量是只读的,不能修改它的值
const int a=11;//在定义a 的时候用const 修饰,并赋初值为11,此后,就不能再给a 赋值了
a=111;//错误的
const 还可以修饰指针

4、auto int a;和int a 是等价的,auto 关键字现在基本不用
5、extern 是外部的意思,一般用于函数和全局变量的声明,这个在后面的课程中,会用到

(三)控制语句相关的关键字

if 、else 、break、continue、for 、while、do、switch casegoto、default

(四)其他关键字

sizeof、typedef、volatile
1、sizeof
使用来测变量、数组的占用存储空间的大小(字节数)
例3:
int a=10;
int num;
num=sizeof(a);
2、typedef 重命名相关的关键字
作用是给一个已有的类型,重新起个类型名,并没有创造一个新的类型
INT16 a;
INT32 b;
typedef 起别名的方法:

  • 用想起名的类型定义一个变量
  • unsigned int a;
  • 用新的类型名替代变量名
  • unsigned int INT16;
  • 在最前面加typedef
  • typedef unsigned int INT16;
  • 就可以用新的类型名定义变量了
  • INT16 b;和unsigned intb;//效果一样

3、volatile 易改变的意思
用volatile 定义的变量,是易改变的,即告诉cpu 每次用volatile 变量的时候,重新去内存中取
最新的值,而不是寄存器中的备份。
volatile 关键字现在较少适用
volatile int a=5;

相关推荐
.Cnn2 分钟前
用邻接矩阵实现图的深度优先遍历
c语言·数据结构·算法·深度优先·图论
YMWM_4 分钟前
第一章 Go语言简介
开发语言·后端·golang
只因在人海中多看了你一眼6 分钟前
python语言基础
开发语言·python
2401_858286117 分钟前
101.【C语言】数据结构之二叉树的堆实现(顺序结构) 下
c语言·开发语言·数据结构·算法·
y25088 分钟前
《Object类》
java·开发语言
小技与小术13 分钟前
数据结构之树与二叉树
开发语言·数据结构·python
Beau_Will13 分钟前
数据结构-树状数组专题(1)
数据结构·c++·算法
迷迭所归处17 分钟前
动态规划 —— 子数组系列-单词拆分
算法·动态规划
爱吃烤鸡翅的酸菜鱼18 分钟前
Java算法OJ(8)随机选择算法
java·数据结构·算法·排序算法
hccee34 分钟前
C# IO文件操作
开发语言·c#