------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
【运算符】
1、运算符:
链接两个操作数的符号。
分类:
1)功能划分 算数运算符:+、—、*、/
关系运算符:=,《,》
逻辑运算符:&&、||
按位运算符:
2)根据参与运算的操作数的个数分:
单目运算:i++
双目运算:a+b
三目运算:a>b?a:b;
优先级:
2、算术运算中类型转换:
隐式类型转换 int——》float
(显式) 强制类型转换 (int)(s+b);
从下到上转换。
注意事项:
用一个大数加一个小数,如果使用float会有问题,有效数位只有7位。会造成数据丢失。
强制类型转换,此处是临时转换,不会改变原值。
3、赋值运算符:
复合赋值运算符:a+=3——>a=a+3;
4、自增自减运算符:
单目运算
++a先加再用,b++先用再加;
不管怎么样最后a的值都会加1;++a+b+a++;其中a加了两次是5;
不能用再常量上;++(a+3)是不对的,表达式a+3都有一个常量返回值;
运算技巧:
r=a+++b++;这个r=表达式1+表达式2;其中表达式1值为a,表达式2值为b;
p=i+++i+++i++;
5/6 6/7 7/8
先看的是变量,表达式值就是变量的值,i的值+1;i++
先看到的是++,先让i的值+1,i的值+1;++i
5、sizeof运算符:
单目运算符,是以字节的形式给出了操作数占用存储空间的大小。
用法:sizeof(常量/变量)不是一个函数,是一个操作符。
char占1个字节,-128-127;
char类型的常量存储,97以int类型的数据进行存储;’a’
char类型的变量以把字符串的ASCII码转换为二进制(1个字节)进行存储;
sizeof运算符计算变量在内存中占用的字节数:括号可以省略;
sizeof用于计算某一种数据类型在内存中占用的字节数:
sizeof(int)
6、逗号运算符:
一般形式:a=(a+b,c+2)表达式1,表达式2;
求值过程:
分别求每个表达式的值,最后表达式为最终值;
使用注意:
不是所有,号都是逗号表达式,逗号运算符可以嵌套使用;
7、关系运算符;
比较两个数或者表达式之间的关系。
c语言真假性;非0既是真,则返回真,假。
关系运算符的优先级和结合性,双目运算,左结合;
只有优先级相同的情况下才说结合性;
8、逻辑运算符
概念:逻辑上成立与不成立;&&与运算、||或运算、!非运算
表达式:表达式 逻辑运算符 表达式 a&&b 值为1,0。
逻辑与运算&&:参与运算的两个量都为真时,结果才为真,否则为假(表示多个条件同时成立“并且、且、同时”)同真为真,一假则假 。11级优先级左结合。
逻辑或运算||:当有多个条件时只要有一个成立及为真,否则为假。或者
一真为真,同假为假。 12级优先级, 左结合;
逻辑非运算! :取反 真变假,假变真。二级优先级 ,右结合;
逻辑运算的短路问题:
一假为假,a&&b 如果a为假则结果为假,就不执行b,这就是逻辑与短路。
一真为真,a&&b如果a为真则结果为真,就不执行b,这就是逻辑或短路。
9、三目运算符
有三个操作数参与运算的量。
一般形式:表达式1?表达式2:表达式3
求值规则:表达式1进行批判,如果为真则用表达式2的值作为整个运算的值,如果表达式1为假则用表达式3的值作为运算的值。
13级优先级,结合性从右到左。