一、数据类型
1.基本数据类型
字符型:char--1字节
整型:短整型:short(short int)--2字节
整型:int --2字节(16位)/4字节(32位及以上)
长整型:long --4字节(32位)/8字节(64位)
长长整型:long long(long long int)--8字节
实型:单精度浮点型:float --4字节
长精度浮点型:double --8字节
2.构造数据类型
数组、结构体、联合体
3.特殊数据类型
指针、void*、数组指针、函数指针、结构体指针等
字节:计算机存储最小单位,
char--一个字节占8bit(8位二进制数字)
无符号数---unsigned 取值范围 0--255 256个数
有符号数---signed 取值范围 -128--127 256个数,
源码
反码
补码
正数的源码,反码,补码是其本身
负数在计算机中用补码存储,运算关系:补码=反码+1,反码是源码符号位不变,其余位取反得到,
数据类型 | char | short | int |
无符号取值范围 | 0 ~ 2^8 -1 0-255 0x0 ~ 0xFF | 0 ~ 2^16 -1 0 ~ 65535 Oxo ~ 0xFFFF | 0 ~ 2^32 -1 0 ~ 4G -1 (42.9亿) 0x0 ~ 0xFFFF FFFF |
有符号取值范围 | -2^7 ~ 2^7 -1 -128 ~ 127 | -2^15 ~ 2^15 -1 -32768 ~ 32767 | -2^31 ~ 2^31 -1 |
实型数据:带小数数据,单双以精度区分,
单精度浮点型:精度为小数点后6位,一般取前5位,第六位不准确,第七位会四舍五入
双精度浮点型:精度为小数点后12位,一般取10位
实型数据输出时,一般默认小数点后6位,存储时分三部分:整数部分,小数部分,指数部分
二、常量:不能发生变化的量
整型常量:
八进制整型常量:由0~7组成,一般在数字前面加0
十进制整型常量:由0~9组成
十六进制整型常量:由0~9,a-f(A-F)组成,一般在数字前加0x或0X
029为非法数,
实型常量:1.414 3.1415926
字符常量:
ascii码表中的字符按 ' ' 引起的单个字符,成为字符常量, 'a' ,'9',' ' ;在Ascii表中,'0'=48, 'A'=65, 'a'=97。
字符串常量
用“”引起的一个或多个字符,称为字符串
“a”= a\0
"abc"=a b c \0
"" = \0
" " = 空格 \0
"\0" = \0 \0
指数常量
格式【+-】M.Ne【+-】T M整数位,N小数位,T必须是整数,不能开平方
3.14e-6=3.14*10^-6
符号常量--宏
#define PI 3.1415926---PI就是符号常量
转义字符:
000 NUL '\0' (null character) 字符串结束标志
007 7 BEL '\a' (bell)
010 8 BS '\b' (backspace) 删除键
011 9 HT '\t' (horizontal tab) tab键
012 10 LF '\n' (new line) 回车键
013 11 VT '\v' (vertical tab)
014 12 FF '\f' (form feed)
015 13 CR '\r' (carriage ret)
三、变量:可以发生变化的量,用来保存数据
定义格式:存储类型 数据类型 变量名 ;
eg:int a;-- 定义一个整型变量num 先定义后使用
等价于 auto int num;auto就是存储类型
等价于 auto signed int num;
无符号型 unsigned int 不能省略
存储类型
Auto 自动类型、一般省略不写,申请在栈区,初始值为垃圾值
Static 静态类型、不能省略,申请在静态常量区,初始值为0
Extern 外部类型、不能省略,不申请内存,是一种声明关系,不是定义变量
Register 寄存器类型、不能省略,一般不定义,特点访问速度最快,定义在CPU上
数据类型
基本数据类型
char-short-int-long-long long-float-double
构造数据类型
数组、结构体、联合体
特殊数据类型
指针、void*、数组指针、函数指针、结构体指针等
变量名
1.遵循C语言命名规范
不能与关键字冲突
不能以数字开头
以字母数字下划线组合完成;一般一个下划线开头是操作系统提供变量,两个下划线开头是操作系统内核提供的
2.行业习惯
驼峰式:每个单词首字母大写 LinkNode、
下划线式:每个单词之间用下划线 _ 连接 link_node-----推荐-----
3.公司规范:详见公司编码规范
初始化:在定义变量时赋初始值,成为初始化
因为定义auto变量时,初始值为垃圾值,赋值两步操作,先申请空间,再赋值
类型转换
隐式转换:
在任意表达式中,按照一下顺序转换: char-short-int-long-long long-float-double
默认将等号右边的数据类型转换成左边的数据类型-左边优先级高
eg: float pi=3.14;
Int num=pi,num=3
显示转换\强制转换
格式:(数据类型)变量名 ;
eg: float pi=3.14;
(int)pi=3
0L 长整型
ul 无符号长整型
ll 有符号长长整型
ull 无符号长长整型
-a+A 将小写字母转化为大写字母; -A+a 将大写字母转化为小写字母
%d 以十进制整数打印
%o以八进制整数打印
%x以十六进制整数打印