A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 新生heima 于 2015-8-8 12:02 编辑

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

2 个回复

正序浏览
不好意思,第一次发这么长的帖子,给发错了{:2_30:}
回复 使用道具 举报
     写法规范:运算符两侧一般要加上一个空格,为了美观,易读。

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

2,分类:
       (1)功能划分:算数运算符,关系与逻辑运算符,按位运算符。
        (2)操作数划分:单目运算符a++,双目运算符a+b,三目运算符(?:)

3,优先级和结合性:

         优先级:分15级,1级最高,15级最低,运算过程中,先做优先级高的运算,再做优先级低的工作, 同等优先级情况下按照运算符的结合性运算。
[img=http://img.bbs.csdn.net/upload/201508/05/1438748685_194968.png][/img]
[img=http://img.bbs.csdn.net/upload/201508/05/1438748669_855712.png][/img]
[img=http://img.bbs.csdn.net/upload/201508/05/1438748698_944539.png][/img]

       结合性:左结合a+b-c
                       右结合x=y=z

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

2)求余运算符%,运算数必须是整数,m%n  m除以n,取余数部分
       注意事项:m和n都不能是小数,否则报错。
                          m< 0  结果为负数
                         n<0    结果无变化  ,正负性取决于m

3)算数运算符中的类型转换问题
      (1)隐式类型转换(自动转换)
       (2)显式类型转换(强制类型转换)     (要转换成的类型)要转换的变量或者表达式。
[img=http://img.bbs.csdn.net/upload/201508/05/1438753530_10213.png][/img]            
            注意事项:  一个大数加上一个特别小的数,使用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的结果。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马