赋值运算符
形式
a=2; //把2赋值给a,不是a等于2;(java只有一个=,c是=和==)
用法
- 一般赋值
a=2; - 连续赋值
a=b=2; //把2赋值给b,再把b的值赋值给a
a=12=13;(错误的)
左侧是目标类型,计算机会将数据转成一样的类型。
加减乘除之除法
取整:/ :分母不能为0
取余(取模):% :必须是整数,浮点数不行。
image.png
优先级
image.png自加、自减
常量不可自加。
后缀++(a++/a-- )和前缀++(++a/--a)区别
- a++/a--优先级高于++a/--a
- ++a/--a用自加前的值参与运算,运算完之后,自加
- a++/a--用自加后的值参与运算
int main(void) {
int a = 13;
int b = 13;
a++;
++b;
printf("%d,%d\n", a, b); //14,14
int c = 13;
int d = 13;
int e = c++; //将13赋值给e,然后c自己+1
int f = ++d; //d先自己+1=14,然后将14赋值给f
printf("%d,%d,%d\n", c, e, c);//14,13,14 //获取e的值之前,c没有运算,c运算完成之后+1
printf("%d,%d,%d", d, f, d); //14,14,14 //zou dao
return 0;
}
int main(void) {
int c = 13;
printf("%d\n",c); //13
printf("%d\n",c++);//13
printf("%d",++c); //15
return 0;
}
同一个变量的自加自减不能出现自同一条语句中两次以上,这样的话,不同的编译器得到的结果是不同的
int main(void) {
int a = 13;
int b = a++ + --a + a++; //这个语句的变量a,出现自增自减3次,这样是不可以的。
int b = a++ +a;//尽量避免这种写法
printf("%d", b);
return 0;
}
复合运算符
int main(void) {
int a = 13;
a = a + 3;
a += 3;
a = a - 3;
a -= 3;
a = a * 3;
a *= 3;
a = a / 3;
a /= 3;
return 0;
}
网友评论