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;

相关推荐
晓纪同学31 分钟前
QT-简单视觉框架代码
开发语言·qt
威桑31 分钟前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服34 分钟前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生40 分钟前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生43 分钟前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans1 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手1 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Chinese Red Guest1 小时前
python
开发语言·python·pygame
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言
xiaoshiguang32 小时前
LeetCode:222.完全二叉树节点的数量
算法·leetcode