运算符 1、命令窗口卡住后用control+c退出
2、取余运算(就是模运算),%操作数都是整数,
int e = -10 % 3 e=-1
int e = -10 % -3 e=-1
int e = 10 % -3 e=1
%取余结果的正负性只跟%左边的数值有关
3、自动类型转换,强制类型转换(type)
参与运算数据类型是什么类型,结果就是什么类型
10/3 3
int c = 10/3 3
double c = 10/3 3.000000
所以10/3结果就是3,如果赋值就看什么类型再转换
double c = 10.0/3 3.333333
double c = (double)10/3 3.333333
double c = (double)(10/3) 3.000000
4、 int c = a ?10
?为%时,c的结果不超过10,结果为0~9
5、a += 5 + 6 + 4; // 相当于a =a + (5 +6 + 4);
6、int a =10;
b = (a++) + (++a); // a=12 b=22
b = (10) +(12)=22; //“+”结合方向是从左到右
// 10 — >11 11— >12
7、sizeof(变量\常量);返回字节数。sizeof 常量\变量 ,去掉括号也行;
sizeof(double)结果为8 ,但是sizeof double 语法不通过(数据类型)
8、C语言没有布尔类型,任何非0值都为真,只有0才为假。关系运算符运算结果只有两种,1和0,代表真和假。
2==3>1 先计算3>1,得1,2==1得0 ,结果为0
4>3>2结合方向为从左往右,结果为1>2得0
3+4>8-2 (3+4)>(8-2) 得1 ,算术运算符优先级高于关系运算符,优先级不用死背。
9、逻辑运算应用登陆QQ时,当用户名和密码都为1时,点击登陆后才成功。
逻辑值只有1和0即真和假。
逻辑与&&计算时,左边为假时,右边不计算(在性能优化时用到),当左边为真时,才计算右边,
int a =10;
int b =10;
int c = (a>5) &&(++b>=11) //结果10 11 1
int c = (a<5) &&(++b>=11) //结果10 10 0
逻辑或“||”计算时,同上原理
int a =10;
int b =10;
int c = (a>5) || (b++ - 11) //结果10 10 1 注意左边为真,右边不计算
int c = (a<5) || (b++ - 11) //结果10 11 0
逻辑非“!”
int a = !10; //结果为0 ,任何数值都有真假性。
int a = !!10; //结果为1
10、三目运算符
int a = 100 ? 1 : 2 //结果为1
代码少不代表性能高,程序的可读性重要。
|
|