您的位置:首页 > 职场人生

黑马程序员---学习笔记1:运算符

2015-08-19 19:33 525 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
——- 写法规范:运算符两侧一般要加上一个空格,为了美观,易读。

1,运算符的定义:告诉编译器执行各种操作的符号。

2,分类:

(1)功能划分:算数运算符,关系与逻辑运算符,按位运算符。

(2)操作数划分:单目运算符a++,双目运算符a+b,三目运算符(?:)

3,优先级和结合性:

优先级:分15级,1级最高,15级最低,运算过程中,先做优先级高的运算,再做优先级低的工作, 同等优先级情况下按照运算符的结合性运算。







结合性:左结合a+b-c

右结合x=y=z

1)算数运算符,+,-,*,/(操作数为整型,结果是整型,若有一个实型,结果为双精度实型),%(操作数只能是整型)

2)求余运算符%,运算数必须是整数,m%n m除以n,取余数部分

注意事项:m和n都不能是小数,否则报错。

m< 0 结果为负数

n<0 结果无变化 ,正负性取决于m

3)算数运算符中的类型转换问题

(1)隐式类型转换(自动转换)

(2)显式类型转换(强制类型转换) (要转换成的类型)要转换的变量或者表达式。



注意事项: 一个大数加上一个特别小的数,使用float会有问题(造成数据丢失),float的有效数位只有7位,

强制类型转换是临时转换。

4)赋值运算符: 作用,把等号右边的数赋值给左边的变量(不能是常量和表达式),优先级:14,右结合

5)自增自减运算符:

前缀表达式:++x,后面必须跟变量不能是常量,先变化,再运算

后缀表达式,x--,先使用当前值,再发生变化

注意区分,表达式的值和a的值,int a=3;a++;表达式值3,a的值为4。若++a,表达式值为4

int a=3;(++a)-b+(++a),表达式的值不同操作系统会有不同,但是最终a=5,这个是确定的。

++3,和++(a+3)都是错误的,第一个运算数是常量,第二个运算数是表达式,表达式是有返回值的,相当于常量。

I++,表达式从左至右看,先看到i,表达式的值是i的值,

++i,表达式从左至右看,先看到++,表达式的值是+1后的值

6)sizeof运算符,不是函数,用法:sizeof(常量/变量),作用:计算常量、变量、数据结构在内存中占用的字节数。

小数后面加f,表示float类型,占4字节,单独的小数默认为double类型,占8字节

char 类型 占1字节,-128~127,

但是 char类型的常量存储是把字符转化成相对应的ascii码以int类型存储的,因此,占4字节。(!!!)

char类型变量,把字符的ascii码转化成二进制(1字节),进行存储。

sizeof用在常量和变量的时候可以省略括号。用在数据类型的时候不能省略

7)逗号表达式 用逗号连接表达式。

求值方式:对连接的每个表达式逐个求值,用最后一个表达式的值作为整个逗号表达式的值

注意:逗号表达式可以嵌套使用,使用是不太注重逗号表达式的值,注重的是在求值过程中,各个变量的变化(因为逗号表达式自左往右,依次运算,在求值过程中,会有变量的变化,这个需要注意)

8)关系运算符 比较两个数或者表达式之间的关系,有大于>,小于<,等于==,不等于!=,大于等于>=,小于等于<=

C语言中所有式子都有真假, 非0为真,是0为假 关系表达式的值只有两种真(1),假(0)。

优先级:第六级,>,<,>=,<=4个

第七级,==,!=2个(注意,她们是分为两个优先级的)

9)逻辑运算符

逻辑与 && 优先级11级, 表示多个条件同时成立 (同真为真,一假则假)

逻辑或 || 优先级12级,当有多个条件,只要有一个成立就可以

逻辑非 ! 优先级敏级,取反(0取反为1,非0取反为0)

逻辑运算符的短路问题:A&&B,如果A为假,B就不执行了,结果为假。A||B,如果A为真,B就不执行了,结果为真

10)三目运算符(条件运算符) 表达式1?表达式2:表达式3;

如果表达式1成立,返回表达式2的结果,否则返回表达式3的结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: