运算符
1.自增自减.
2.赋值
3.逗号
4.条件
5.求字节数
自增自减:一元运算符
++i.–i 在使用i之前,先使i的值加减1 先增减后运算
i++,–i 在使用i之后,使i的值加减1 先运算后增减
例:
#include <stdio.h>
int main()
{int i=3;
printf("%d",++i);
}
结合性:自左至右
例:
#include <stdio.h>
int main()
{int j,i=2;
j=-i++;
printf("j=%d,i=%d,j,i);
return 0;
}
注:自增、自减运算常用在循环语句中,使循环变量加减1
自增,自减运算符,不能用于常量和表达式
赋值
赋值运算符:=
赋值表达式:【变量】=【表达式】 表示将右边表达式的值赋值给左边的变量 以得到改变变量值
赋值运算符优先级:!>算数>关系>&&和||>赋值
结合性:自右至左
注:格式左边一定是一个变量,格式右边可以是任意的表达式,表达式计算结果数据类型应当与变量的数据类型相同
**当表达式值的类型与被赋值变量的类型不一致,但都是数值型或字符型,系统自动地将表达式的值转换成被赋值变量的数据类型,再赋值给变量
**
#include "stdio.h"
int main()
{int j;
j=2.5;
printf("j=%d",j);
}
输出结果为2
复合赋值运算符
由赋值运算符之前再加一个双目运算符构成
常见:
*= /= %== +== -== <<= >>= &= |= ^=
复合赋值运算符优先级:与赋值运算符=是同一优先级
结合性:自右至左
例:
设a=12,计算a+=a-=a*12
#include "stdio.h"
int main()
{ int a=12;
a+=a-=a*12;
printf("a=%d",a);
}
a=-264
逗号
逗号运算符:,
作用:将几个表达式隔开并以此计算 【表达式1】,【表达式2】,……
运算优先级:最低
整个表达式的值:依次从左到右计算,最后一个表达式的值即为逗号表达式的值
条件
条件运算符:?:
作用:判断一个逻辑表达式的结果,如果为真则指定执行某个表达式,如果为假则执行另外的表达式,条件表达式的实质就是起程序控制作用 【表达式1】?【表达式2】:【表达式3】
求值规则:先求解表达式1,若为真(非0),求解表达式2,并吧表达式2的值作为整个表达式的值 若表达式1的值为假,求解表达式3,并把表达式3的值作为整个表达式的解
优先级:逻辑>条件>赋值
结合性:自右至左
例:
#include "stdio.h"
int main()
{ inty,x=15;
y=x>10?x/10:x>0?x:-x;
printf("y=%d,y);
}
求字节数
求字节数:sizeof () 单目运算符,用于计算一个某种类型的运算量所占用的字节数
两种形式: sizeof (类型标识)
sizeof (变量名);或sizeof 变量名