1.变量的初始化
例:int i = 1; double j = 2; char a = 'H';
2.运算符
优先级:单目运算符比双目运算符和三目运算符的优先级高。
优先级 | 运算符 | 含义 | 运算对象个数 | 结合方向 |
2 | ++ | 自增运算符 | 1(单目运算符) | 自右至左 |
2 | -- | 自减运算符 | 1(单目运算符) | 自右至左 |
3 | * | 乘法运算符 | 2(双目运算符) | 自左至右 |
3 | / | 除法运算符 | 2(双目运算符) | 自左至右 |
3 | % | 取余运算符 | 2(双目运算符) | 自左至右 |
4 | + | 加法运算符 | 2(双目运算符) | 自左至右 |
4 | - | 减法运算符 | 2(双目运算符) | 自左至右 |
14 | = | 赋值运算符 | 2(双目运算符) | 自右至左 |
自增运算符用法:++i 是先加后用; i++是先用后加;
注:在同一表达式中,不要对同一个变量多次自加或自减。
编辑器只做类型检测。
求余表达式最终结果符号与左操作数有关。
3.临时变量(匿名变量)
#include<stdio.h>
int main(void)
{
int i = 2,j = 3;
printf("%d\n",i + j );
return 0;
}
其中 i + j 是临时变量,在使用过后会有系统立即回收。
注:临时变量在使用时注意类型。
4.左值,右值
左值(left value) | 可定位的(locatable) | 变量 |
右值(right value) | 可读的(readable) | 常量,临时变量 |
注:能取地址的都是左值。
5.混合运算
5.1隐式转换
5.2显式转换(临时)
(类型) 类型转换运算符
#include<stdio.h>
int main(void)
{
int i = 2,j = 3;
printf("%d\n",(double)i + j );
return 0;
}
输出的结果是double类型。
注意:使用类型转换运算符可能带来数据的丢失。
6.赋值
6.1 高位截断
字节长的赋值给字节短的会造成高位截断。
例:int = double;
6.2符号位扩展
字节短的赋值给字节长的会造成符号位扩展。
例:double = int;
注:字节短的赋值给字节长的会产生空洞,unsigned 补0,signed 看符号位正补0,负补1.