C语言-关键字

关键字就是c语言已经定义好的名字,直接可以拿过来使用,不需要再次定义
1 数据类型相关的关键字
用于定义变量或者类型
定义变量的语法结构:
类型 变量名;
拓展:变量名属于标识符,标识符(变量名、函数名、重命名和取别名)有命名规则标识符的命名规则:
标识符只能以数字、字母和下划线命名
首字母不能是数字
不能与关键字相同
char 、short、int 、long 、 float、double、
struct、union、enum 、signed、unsigned、void
1、char 字符型 ,用char定义的变量是字符型变量,占1个字节
有符号:-2^7 ~ 2^7-1
无符号:0 ~ 2^8-1
2、short 短整型 ,使用short 定义的变量是短整型变量,占2个字节
有符号:-2^15 ~ 2^15-1
无符号:0 ~ 2^16-1
3、int 整型 ,用int定义的变量是整型变量,在32位以上的系统下占4个字节
有符号:-2^31 ~ 2^31-1
无符号:0 ~ 2^32 - 1
4、long 长整型 用long 定义的变量是长整型的,在32位系统下占4个字节,在64位系统下占8个字节
5、 float 单浮点型 (实数),用float定义的变量是单浮点型的实数,占4个字节
6、double 双浮点型 (实数),用double定义的变量是双浮点型的实数,占8个字节
7、struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型
8、 union 这个关键字是与共用体(联合体)相关的关键字
9、 enum 与枚举类型相关的关键字
10、signed 有符号(正负)的意思
在定义char 、整型(short 、int、long)
数据的时候用signed修饰,代表定义的数据是有符号的,可以保存正数,也可以保存负数
注意:默认情况下 signed 可以省略 即 int a=-10;//默认a就是有符号类型的数据
11、unsigned 无符号的意思
在定义char 、整型(short 、int、long)
数据的时候用unsigned修饰,代表定 义的数据是无符号类型的数据, 无符号类型的变量只能保存正数和0。
12、void 空类型的关键字
char、int 、float 都可以定义变量
void不能定义变量,没有void类型的变量
void是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
测试数据类型所占内存大小
#include <stdio.h>

//测试基本数据类型的所占内存大小

int main(int argc, char *argv[])
{
    char a;
    short b;
    int c;
    long d;
    float e;
    double f;

    //sizeof 是一个运算符,可以获取数据类型所占内存大小
    printf("%d\n",sizeof(a));
    printf("%d\n",sizeof(b));
    printf("%d\n",sizeof(c));
    printf("%d\n",sizeof(d));
    printf("%d\n",sizeof(e));
    printf("%d\n",sizeof(f));


    return 0;
}

测试结果

 因为该编译器是使用的32位的,所以long类型显示的是占4个字节,在64位的编译器上面long类型显示的是占据8个字节。

2 存储相关关键字
register、static、const、auto、extern
1、register 是寄存器的意思,用register修饰的变量是寄存器变量,
即:在编译的时候告诉编译器这个变量是寄存器变量, 尽量 将其存储空间分配在寄存器中。
注意:
(1):定义的变量不一定真的存放在寄存器中。
(2):cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
(3):因为寄存器比较宝贵,所以不能定义寄存器数组
(4): register只能修饰 字符型及整型的,不能修饰浮点型
register char ch;
register short int b;
register int c;
register float d;//错误的

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

2、 static 是静态的意思
static可以修饰全局变量、局部变量、函数
使用static修饰的变量,此变量保存在内存的静态区空间中
3、 const
const 是常量的意思
用const修饰的变量是只读的,不能修改它的值 const int a=101;//在定义a的时候用const修饰,并赋初值为101
从此以后,就不能再给a赋值了
a=111;//错误的
const可以修饰指针
4、 auto
auto int a和int a是等价的,auto关键字现在基本不用
5、 extern
是外部的意思,一般用于函数和全局变量的声明
3 控制语句相关的关键字
if 、else 、break、continue、for 、while、do、switch case
goto、default
4 其他关键字
sizeof、typedef、volatile
1 sizeof
使用来测变量、数组的占用存储空间的大小(字节数)
例 3:
int a=10;
int num;
num=sizeof(a);
2 typedef 重命名相关的关键字
unsigned short int a = 10;
U16
关键字 ,作用是 给一个已有的类型,重新起个类型名 ,并没有创造一个新的类型
INT16 a;
U8 ch;
INT32 b;
 在 c 语言中没有 INT16 U8 这些关键字
INT16 U8 是用 typedef 定义出来的新的类型名,其实就是 short int unsigned char 的别名
typedef 起别名的方法:
1 、用想起名的类型定义一个变量
short int a;
2 、用新的类型名替代变量名
short int INT16;
3 、在最前面加 typedef
typedef short int INT16;
4 :就可以用新的类型名定义变量了
INT16 b;和 short int b;//是一个效果
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值