1.1关键字
1.1.1数据类型相关的关键字
用于定义变量或者类型
类型 变量名;
char、short、int、long、 float、double、struct、union、enum、signed、unsigned、void
1、char 字符型,用char定义的变量是字符型变量,占1个字节
char ch='a';=为赋值号
char ch1 = '1'; 正确
char ch2 = '1234' ;错误的
2、short 短整型,使用short定义的变量是短整型变量,占2个字节
short int a=11; -32768----32767
3、int 整型,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占2个字节
int a=44; -20亿----20亿
4、long长整型,用long定义的变量是长整型的,在32位系统下占4个字节
long int a=66;
5、foat单浮点型(实数),用float定义的变量是单浮点型的实数,占4个字节
float b=3.8f;
6、double双浮点型(实数),用double定义的变量是双浮点型的广数,8个字节
double b=3.8;
7、struct,这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型
8、union,这个关键字是与共用体(联合体)相关的关键字
9、enum,与枚举类型相关的关健字
10、signed,有符号(正负)的意思
在定义char、整型(short、int、long)数据的时候用signed修饰,代表咱们定义的数据是有符号的,可以保存正数,也可以保存负数
例:signed int a=10;
signed int b=-6;
注意:默认情况下signed可以省略即inta=-10://默认n就有符号类型的数据
11、unsigned,无符号的意思
在定义char、整型(short、int、long)数据的时候用unsigned修饰,代表咱们定义的数据是无符号类型的数据只能保存正数和0。
unsigned int a=101;
unsigned int a=-101; ∥错误
扩展:内存存储
char ch=‘a';//占1字节,存储的是97
0110 0001
字节:内存的基本单位,8位为1个字节
计算机存储时,只能存储1和0的二进制组合,1和0都分别占1位
字符型数据在内存中存储的不是字符本身,而是存储其Asci码
整型变量存储的是其值的二进制 unsigned int a=97;
扩展:正数和负数在内存中到底是怎么存的
原码、反码、补码
规定:
正数的原码反码和补码相同 5
00000101
负数:-5
00000101
最高位为符号位最高位为1代表是个负数
12、void,空类型的关键字
char、int、foat都可以定义变量
void不能定义变量,没有void类型的变量
void是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
例:
void fun(void)
{
}
代表fun函数没有返回值,fun函数没有参数
例2:
#include<stdio.h>
int main()
{
char a='a';
short int b=10;
int c;
long int 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;
}
1.1.2存储相关关键字
register、static、const、auto、extem
1、reglster
reglster是寄存器的意思,用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; //错误的
4、auto
int a;和int a是等价的,auto关键字现在基本不用
5、extern
是外部的意思,一般用于函数和全局变量的声明
1.1.3控制语句相关的关键字
if、else、break、contiue、for、while、do、switch、case、goto、default
1.1.4其他关键字
sizeof、typedef、volatile
1、slzeof
使用来测变