一、 C语言数据类型 分类如下:
-
short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。
在不同的系统上,这些类型占据的字节长度是不同的:
在STM32位的单片机中:
short 占据的内存大小是 2 个byte;
int 占据的内存大小是 4 个byte;
long 占据的内存大小是 4 个byte;
float 占据的内存大小是 4 个byte;
double 占据的内存大小是8 个byte;
char 占据的内存大小是 1 个byte。具体可以用sizeof测试一下即可.
二、常量
常量是指在程序运行期间其数值不发生变化的数据。
- 基本数据类型的常量:
1)整型的常量通常称为整数---可以为十、八、十六进制。
2)浮点型常量 又称为实数,一般含有小数点部分;在C语言中,实数只有十进制的实数,分为单精度和双精度。且有两种表示方法----一般形式(3.898),指数形式(1.176e+10 表示1.176 * 10^10, 1.176e-10 表示1.176 * 10^-10)。
3)字符型常量
字符常量是指一个单一的字符,其表示形式是由两个单引号包括的一个字符。
a = 'F' ; //将70送给a
‘ ’ ASCII 是 32.
'a' ASCII 是 97.
'A' ASCII 是 65.
'0' ASCII 是 48.
数字 0 ASCII 是 NULL '\0'.
4)字符串常量
字符串常量是指用双引号括起来的一串字符来表示的。
例如:“9”,“Hello", "Linux"
思考:‘9’ 与“9” 是一样的吗?“9”中包含两个类容,’9‘ +’\0‘两个类容
5)标识常量:
所谓的标识常量 是指用 标识符 代替 常量 使用的一种常量,其名称通常是一个标识符。
标识常量也叫符号常量,一般用大写因为字母的标识符;在使用之前必须预先定义。
说明形式为: #define <标识常量名称> <常量>
三、变量
- 变量通俗来说就是程序在运行过程中临时数据的载体(一段储存空间的映射),有什么类型的数据,就要定义相应类型的变量。
例如:
int a = 0;
其中 a 指的就是变量,int 指的就是数据类型;这行代码意思:定义了一个整数型(int)变量a,且初始化为0。
其中还有 储存类型-------局部变量: auto(默认随机) ;寄存器:register ; 静态变量: static(默认为0,可修饰局部,全局变量); 全局变量: exter n (默认0) 。
例如:
static int a = 0;
static 修饰整型变量a 为静态变量 :若 修饰的 是全局变量,则只有定义的源文件能使用该变量,其他文件不能使用。
若修饰的是局部变量,则定义该值的函数执行外后不释放该值的空间。
注:变量由 字母 、数字 、 下划线组成。不能以数字开头,不能和C的关键字重名。
寄存器变量:register 不能用&取地址。
四、运算符
- 算术运算符 : + 、 - 、 * 、 / (取整)、 %(float与double 之间不能取余)
- 关系运算符 :>=(大于等于) 、> (大于) 、<(小于) 、 <= (小于等于) 、 == (等于) 、 !=(不等于)
- 逻辑运算符 : !(非) \ &&(逻辑与)--逢0停止,有些句子没有必要执行 \ ||(逻辑或)--逢1停止,有些句子没有必要执行
- 位运算符 : ~ (按位取反) 、 & (按位与) 、 | (按位或) 、 ^(按位异或:两者相同为假,不同为真) 、 >> (右移) \ <<(左移)
移位运算 <运算量> <运算符> <表达式> : <运算量>必须为整型结果数值。
<运算符>为 << 或者 >>
<表达式> 也必须为整型结果数值。
例如 :b = a<< 3;
- 复合 赋值运算符 : += -+ *= /= %= &= |= ^= >>= <<=
count ++ <20 :count 先判断是否小于20 ,在自增。
- 特殊运算符 : 条件运算符 ----三目运算符
<表达式1> ? <表达式2> : <表达式3> :表达式1成立时 ,选择表达式2执行,否则执行表达式3.
x =70;
例如:int y =x ++ >70 ? 100:0; ----------------------- x 输出 71 ,y 输出 0 。
- 逗号运算符 : 例如 ---------z = (x + =5, y = x +0.2); 从左到右执行,取最后一个表达式结果。
- sizeof 运算符 :它只针对数据类型,而不是针对变量。
运算符优先级: