这写的还有问题,还需要深入的修整,
- 存储类型没有介绍
- 变量的强制转换没有介绍
一:数据类型
1.基本数据类型
1字符类型
char 1 字节
unsigned char 无符号数据 整数
signed char 有符号数据 整数,负数
char 有符号数据 整数,负数
2整型(unsigned signed)
短整形 short 或 short int 2字节
整形 int 4字节
长整形 long 或者long int 4字节
长整形 long long 或者 long long int 8字节
3实型(浮点类型)
float (单精度的浮点类型) 4字节
double (双精度的浮点类型) 8字节
long double (多精度的浮点类型) 12字节
4枚举
enum
2.构造数据类型
数组(同类型,多个数据单元组合而成的数据类型)
结构体 struct
共用体类型 union
3.指针类型
char *p;
4.空类型
void
二:变量
2.1 变量的定义:
<存储类型> <数据类型> <变量名>;
存储类型: auto 、static 、 volatile 、const 、extern、 register
数据类型:在一数据类型中的所有类型
变量名:
1.变量名由 数字、字母、下划线组成,但是不能以数字开头
2.定义变量的时候不能和关键字重复(32)
数据类型12:
char short int long float double signed unsigned
void enum struct union
求数据类型占用的字节的大小1: sizeof
类型重定义1:typedef
存储类型:6
auto static volatile const extern register
分支语句:12
if else do while switch case for break continue
goto default return
3.变量要书写的见名知意:
比如你要定义ADC的数值--> ADC_Val;
4.大小写是区分的,
如上定义的ADC_Val和ADC_VAL是两个不同的变量。
2.2 数据类型的大小:
char -128--127
unsigned char (0-255) 数值的范围
// 一个字节8位(Byte)-->(2^8)==256;
在有符号的时候,通常是bit7位符号标志位!
0111 1111 -->127
1111 1111 -->-128
short 类型 -32768-32767
unsigned short 0-65535
int 类型 -2147483648-2147483647
unsigned int 范围0-(4G-1)
//int 是四个Byte 1bit表示正负,剩余2^31 表示数值。
long 或long int 类型 -2147483648-2147483647(2^31)
unsigned long 范围0-(4G-1)
long long 范围 (-2^63-1 - 2^63)
unsigned long long (0-(2^64-1))
1K = 2^10
1M = 2^20
1G = 2^30
4G = 2^32
2.3 强制类型转换
//以后记得详细补充。
三:常量
整数常量:12345
浮点类型常量:3.14
字符类型的常量:‘a’ 'b'
字符串类型的常量:“hello world !”
标识常量: 使用 #define 定义的标识常量
#define (后面是没有 ; 的!!!)
define 的格式:
#define <宏的名字> <值>
1.#define N 30+1 (如这样,你要记住,他只是进行了替换,并没有进行任何计算。)
2.#define MAX(a.b) ({ int ret ;if(a>b)ret=a;else ret=b;return ret ;})
3.#define S(a) #a ====>#表示字符串化。
4.#define TT(A,B) A##B --->表示拼接。
四:运算符
4.1单目运算符
+ 正数
- 负数
++ 自加1 ++i (先加上1在执行下面的运算) i++(先运算在自加1)
-- 自减1
* =>和指针相关
& =>和指针相关
! 取反 (!10)--->假--->0
~ 按照位取反
4.2算数运算符
+ - * /(分子小于分母结果为0) %(不能有浮点数)
1/2 = 0
1/2.0 = 0.5 //int和float运算,结果是float类型的
4.3移位运算符
<< 左移动 (相当于乘以2^n) (被移动的数)<< (移动的位数)
>> 右移动 (相当于除以2^n) (被移动的数)>> (移动的位数)
4.4关系运算符
< (小于)
> (大于)
!= (不等于)
<= (小于等于)
>= (大于等于)
== (等于)
4.5位运算符
& 与 (只要有0与完之后就是0) 0 & 1 = 0 1 & 1 = 1
例如:给定一个整型变量a,除a的bit 5位。--> a &= (~(1<<5));
| 或 (只要有1或完之后就是1) 0 | 1 = 1 1 | 1 = 1
例如:给定一个整型变量a,设置a的bit 3位.--> a |= (1<<3);
^ 异或 (相异为真)
1001 1100
^
0101 0010
-------------
1100 1110
4.6逻辑运算符
&& 逻辑与 //更加习惯的一种叫法是 并且
表达式1&&表达式2
1.如果表达式1为真,接着判断表达式2是否为真,如果都为真表示式成立
2.如果表达式1为假,表达式2不会被运算,整个表达式都为假
|| 逻辑或 // 常见的喊法是 或者
表达式1||表达式2
1.如果表达式1为真,表达式2不会被运算,整个表达式是直接成立的
2.如果表达式1为假,运算表达式2,整个表达式的结果取决于表达式2
4.7条件运算符
a>b?a:b 如果a>b执行a,如果a<=b执行b;
4.8赋值运算符
=
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
^=
4.9逗号
, (一般用来起分割的作用)
运算符的优先级:
单算移关与 异或逻条赋
单条赋右左 其余左向右