黑马程序员技术交流社区
标题: 学习笔记2-c语言运算符 [打印本页]
作者: 仰望星空的猪 时间: 2015-11-16 17:49
标题: 学习笔记2-c语言运算符
一 运算符
1 运算符及分类
运算符是特定的算术或者逻辑符号。
1)按功能分类
算术运算符、关系运算符、逻辑运算符和按位运算符。
2)按操作数的个数分类
单目运算符、双目运算符和三目运算符。
2 运算符的优先级
运算符的优先级分15等级,1级最高,15级最低。
表达式中,优先级高的的先于低的运算,优先级相同的时候,按照运算符的结合性运算。
3 运算符的结合性
左结合:多个同级优先级的运算符,从左向右运算。比如 算数运算符。
右结合:与左结合相反,比如赋值运算符。
4 表达式
表达式:将同类型的数据(常量,变量和函数等)用运算符按照一定规则连接起来的式子。表达式一定有返回值。
表达式后加分号,构成表达式语句。
1)表达式分类
算术表达式、关系表达式和逻辑表达式。
5 常用运算符
1) 算数运算符(左结合):+ - * / %
操作数为int型时,结果取整,如果有一个为实数类型,结果为双精度实数。
m/n 取余的时候结构正负性取决于 m。
2)赋值运算符(右结合) =
作用:把等号右侧的值赋值给左侧的变量。
变量=值(或表达式);
注意:等号左侧一定是变量,不能是表达式。
3) 复合赋值运算符 += ……
先运算后赋值。
a + = 3 作用和 a=a+3;作用一样
4) 自增自减运算符 i++; i--;++i;--i;
前缀表达式 ++i; --I; i++;作用和 i=i+1;一样
先让变量i自增自减,之后用自增自减之后的i值作为表达式的值
后缀表达式 i++; i--;
先用i值作为表达式的值,之后i的值再自增自减
5) sizeof运算符)
作用:给出操作数的存储大小。单位(字节)
用法: sizeof(数据类型/常量/变量/结构体)
注意:sizeof不是函数,编译时进行
6) 逗号运算符
作用:把两个表达式连接到一起,形成逗号表达式。
求值过程:分别求每个表达式的值,以最后的表达式的值作为整个表达式的值。
例 Int a=4,b=6,c=7;
Int result =(a+1,b+1,c+1);逐个求值 最后把c+1的值赋值给result。
逗号表达式不注重求值的结果,注重求值过程中哪些变量的值发生了变化。
7) 关系运算符(左结合)> 、<、>=、<=、==、!=
所有的数值都有真假性,非0即真,只有0为假。
关系运算符的返回值只有0和1.
8) 逻辑运算符 (或)||、&&(与)、(非)!
或(左结合):两个表达式只要有一个真值,整个表达式的值就为真。
短路或:前一个表达式的值为真,后面表达式就不进行判断了
例
int x=y=1;
Int result= ++x || ++y;
此时 x值为2 y值为1 result的值为1(真)。
与(左结合):两个表达式的值都为真,整个表达式的值才为真。
短路与:前一个表达式的值为假,后面表达式就不进行判断了
例 int x=1,y=2;
Intresult = x>y && x++ > y++;
此时x值为1,y值为2 result值为0(假)。
非(右结合):非真即假,非假即真。
9) 三目运算符(右结合) ? :
条件表达式? 表达式1:表达式2
如果条件表达式的值为真,表达式1的值为整个表达式的值。
如果条件表达式的值为假,表达式2的值为整个表达式的值。
注意:? 和:是成对出现。
例 取a和b中较大值赋值给result。
int a=5,b=6
int result = a>b? a:b;
取a、b和c中较大值赋值给result。
int a=5,b=6,c=7;
nt result=a>b?a:b>c?b:c
作者: 唐阿丽 时间: 2015-11-17 06:29
学习下,很不错的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |