表达式:用 + - * / 串起来的式子。
1. 强制类型转换运算符
- 将一个表达式转换所需要的类型、
- 强制类型转换的时候得到的是一个所需转换类型的中间变量
强制类型转换的时候得到的是一个所需转换类型的中间变量。
两种类型转换。一种是自动类型转换,一种是强制类型转换。
(类型名)表达式
int a;
double b;
b = a; // 也可以 b = (double)a; 示列中:a本身类型并没有变化而是整个这个结果的类型发生变化
(int)(x+y); // 将 x+y 的值转换成 整型
(float)(5%3); // 将 5%3 的值转成 float 型
2. 自增自减操作符
- 自增自减操作符 可以放在变量的前面和后面
- 自增自减操作符 只能用于变量,不能用于 表达式、常量
int i = 6;
++i; // 先加后用
--i;
i++; // 先用后加
i--;
int i = 6;
printf("i++的结果是 = %d\n",i++);
printf("++i的结果是 = %d\n",++i);
=>
i++的结果是 = 6
++i的结果是 = 8
-i++; ==> -(i++);
i+++j ==> i(++)+j // C 编译器在处理时会尽可能多的从左到右将若干个字符组成一个运算符
3. 赋值型运算符和逗号运算符
符号 = ,将等号右边的值赋值给符号左边的变量。
赋值:给变量一个值,或者改变变量到某一个值。
- 几个概念
- char a; 变量定义,系统会给a分配一个字节的内存,内存中的值不确定
- char a = 90; 给变量定义,同时定义时赋值初值,这个不属于是 赋值 的意思,而是定义时初始化
- a=118; 赋值
- 赋值原则:类型最好相同,否则要用强制类型转化
- 复合运算符
传统的加法运算符是从左到右,赋值与复合运算符是从右至左。
int a, b, c;
a = (b = 5); // a = 5;
a = b = c = 5; // a = (b = (c = 5));
4. 逗号运算符合逗号表达式
- 格式:表达式1,表达式2
- 求解过程:先求解表达式1的值,再求解表达式2的值,整个 表达式的值是表达式2的值;
5. 赋值语句的特殊写法
println("x=%d",x = 8);
int a = 3,b = 5;
if ( (a = b) > 0 )
x = 4;