第一章 C数据类型及语句

二、关键字

关键字就是C语言已经定义好的名字,直接可以拿过来使用,不需要再次定义

2.1 数据类型相关的关键字

用于定义变量或者类型

类型 变量名;

拓展:变量名属于标识符,标识符有命名规则

  标识符的命名规则:

  标识符只能以数字、字母、下划线命名

  首字母不能是数字

  不能与关键字相同

char、short、int、long、float、double、struct、union、enum、signed、unsigned、void

1.char 字符型,用char定义的变量是字符型变量,占1个字节

char ch='a'; =为赋值号

有符号:-2^7~2^7-1

无符号:0~2^8-1

例:

char ch1='a'; 正确

char ch2='abcd'; 错误(有多个称之为字符串,需要用双引号修饰,定义的是字符类型的变量,没有办法保存字符串)

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

有符号:-2^15~2^15-1

无符号:0~2^16-1

例:

short int a=11;

3.int 整型,用int定义的变量是整型变量,在32位以上系统下占4个字节

有符号:-2^31~2^31-1

无符号:0~2^32-1

例:

int a=44;

4.long 长整型 用long定义的变量是长整型,在32位系统下占4个字节,在64位系统下站8个字节。

long int a=66;

5.float 单浮点型(实数),用float定义的变量是单浮点型实数,占4个字节

例:

float a=3.8f;

6.double 双浮点型(实数),用double定义的变量是双浮点型的实数,占8个字节

例:

double a=3.8;

7.struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型,以后讲结构体的时候再讲

8.union 这个关键字是与共用体(联合体)相关的关键字,以后再讲

9.enum 与枚举类型相关的关键字 以后再讲

10.signed 有符号(正负)的意思

在定义char、整型(short、int、long)数据的时候用 signed 修饰,代表咱们定义的数据是有符号的,可以保存正数,也可以保存负数

例:

signed int a=10;

signed int b=-10;

注意:在默认情况下signed可以省略 即int a=-10;//默认a就是有符号类型的数据

11.unsigned 无符号的意思

在定义 char 、整型(short 、int、long)数据的时候用 unsigned 修饰,代表咱们定义的数据是无符号类型的数据

无符号类型的变量只能保存正数和 0。

12.、void 空类型的关键字

char、int、float 都可以定义变量

void 不能定义变量,没有 void 类型的变量

void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值

例:

void fun(void)

{

}

代表 fun 函数没有返回值,fun 函数没有参数

测试数据类型所占内存大小

#include <stdio.h>

int main()
{
    char a;
    short b;
    int c;
    long d;
    float e;
    double f;

    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;
}

运行结果:

2.2 存储相关关键字

register、static、const、auto、extern

1、register

是 寄存器的意思,用 register 修饰的变量是寄存器变量,即:在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配在寄存器中注意:

(1):定义的变量不一定真的存放在寄存器中。

(2):cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快

(3):因为寄存器比较宝贵,所以不能定义寄存器数组

(4):register 只能修饰 字符型及整型的,不能修饰浮点型

(5):因为register修饰的变量可能存放在寄存器中不存放在内存中,所以 不能对寄存器变量取地址。因为只有存放在内存中的数据才有地址

2.static

是静态的意思

static可以修饰全局变量、局部变量、函数

使用static修饰的变量,此变量保存在内存的静态区空间中

3.const

const是常量的意思

用const修饰的变量是只读的,不能修改它的值

例:

const int = 10;//在定义a的时候用const修饰,并赋初值为10

从此以后,就不能再给a赋值了

const可以修饰指针

4.auto

auto int a 和 int a 是等价的,auto关键字现在基本不用

5.extern

是外部的意思,一般用于函数和全局变量的声明

2.3 控制语句关键字

if else break continue for while do switch case goto default

条件控制语句:

if语句:if...else

switch: switch case default

循环控制语句:

for while do goto

辅助控制语句:

break continue

2.4 其他关键字

sizeof、typedef、volatile

1.sizeof

使用来测量变量,数组的占用存储空间的大小(字节数)

例:

int a=10;
int num=0;
num=sizeeof(a);
printf("%d\n",num);

2.typedef

重命名相关的关键字

unsigned short int a = 10;

U16关键字,作用是给一个已有类型,重新起个类型名,并没有创造一个新的类型

例如:

INT16 a;

U8 ch;

typedef起别名的方法:

1.用想起名的类型定义一个变量

short int a;

2.用新的类型名替代变量名

short int INT16;

3.在最前面加typedef

typedef short int INT16;

4.就可以用新的类型名定义变量了

INT16 b和short int b//是一个效果

3.volatile

用 volatile 定义的变量,是易改变的,即告诉 cpu,每次用 volatile 变量的时候,重新去内存中取保证用的是最新的值,而不是寄存器中的备份。volatile 关键字现在较少使用

volatile int a=10;

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值