自掘Java----③(运算符与C的区别)待续-创新互联

自掘Java----③(运算符与C的区别)
  • 一 运算符和表达式
    • 1.运算符
    • 2. 表达式
    • 3. 运算符的优先级与结合性
  • 二 Java运算符一览
  • 三 Java运算符详解
    • 1. 算术运算符*
    • 2. 自增、自减运算符
    • 3. 复合赋值运算符
    • 4. 关系运算符*
  • 四 Java运算符与C总结
    • 1. 算术运算符
    • 2. 关系运算符
    • 其余

创新互联企业建站,10年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计、网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

本文请与大一C语言挣扎之路3(运算符)对照使用

一 运算符和表达式 1.运算符

①在C语言中,我们使用运算符(Operator)进行数据的运算,实现对数据的各种操作。
②使用运算符就必须要有运算对象。运算对象也称为操作数(Operand),可以是常量、变量、函数和其他表达式。
③根据所需运算对象(操作数)的个数,运算符又分为3类:
 单目运算符(Unary Operator )(操作数的个数为1,如:取负值运算符等);
 双目运算符(Binary Operator )(操作数的个数为2,如:加、减运算符等);
 三目运算符(Ternary Operator)(操作数的个数为3,如:条件运算符)。

2. 表达式

①表达式(Expression)由运算符和运算对象组成。
②最简单的表达式可以只包括一个运算对象,
 复杂的表达式可以是运算符和运算对象的任意组合。
 根据运算规则,任何一个表达式都有一个确定的值,称为表达式的值。

3. 运算符的优先级与结合性
  1. 当程序中出现一个包含有多个运算符的复杂表达式时,为了准确理解该表达式的语义,通常需要将其划分成若干简单的子表达式的组合,这就必须依靠运算符的两个重要属性:优先级(Precedence)和结合性(Associativity);
  2. Java语言将运算符分为14个优先级,级数越小的运算符优先级越高;
  3. 运算符的结合性只有左结合和右结合两种;
二 Java运算符一览
Java语言运算符优先级表
优先级运算符名称或含义使用形式结合方向运算符类型
1[ ]数组元素下标数组名左到右/
()圆括号(表达式)/函数名(形参表)
.成员选择(对象)对象.成员名
删去了指针->
2-负号运算符-表达式右到左单目运算符
~按位取反运算符~表达式
++自增运算符++变量名/变量名++
--自减运算符--变量名/变量名--
*取值运算符*指针变量
&取地址运算符&变量名
!逻辑非运算符!表达式
(类型)强制类型转换(数据类型)表达式
sizeof长度运算符sizeof(表达式)
3*乘法表达式*表达式左到右双目算数运算符
/除法表达式/表达式
%整除求余(取模)整型表达式%整型表达式
4+加法表达式+表达式左到右双目算数运算符
-表达式-表达式
5<<左移位变量<<表达式左到右双目位运算符
>>右移位变量>>表达式
6>大于表达式>表达式左到右双目关系运算符
>=大于等于表达式>=表达式
<小于表达式<表达式
<=小于等于表达式<=表达式
7==等于表达式==表达式左到右双目关系运算符
!=不等于表达式!= 表达式
8&按位与表达式&表达式左到右双目位运算符
9^按位异或表达式^表达式左到右
10|按位或表达式|表达式左到右
11&&逻辑与表达式&&表达式左到右双目逻辑运算符
12||逻辑或表达式||表达式左到右
13?:条件运算符表达式1?表达式2: 表达式3左到右三目运算符(唯一)
14=赋值运算符变量=表达式右到左双目运算符
+=加后赋值变量+=表达式算数复合赋值运算符
-=减后赋值变量-=表达式
*=乘后赋值变量*=表达式
/=除后赋值变量/=表达式
%=取模后赋值变量%=表达式
<<=左移后赋值变量<<=表达式位复合赋值运算符
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15,逗号运算符表达式,表达式左到右顺序求值运算符

简记运算符优先级就是:! >算术运算符 >关系运算符 >&& >|| >赋值运算符

三 Java运算符详解 1. 算术运算符*

①算术(Arithmetic)运算包括加、减、乘、除、求余、取负数等,分别使用运算符+-*/%-来表示

/除法运算符的两种含义:整数除和实数除
(1)当两个整数相除时,结果仍为整数,即只保留整数商,而舍去小数部分;
(2)只要两个操作数中有一个是实数,“/”都表示实数除,得到的是真实的小数结果;


与C语言区别在于

③在Java中+号的含义除了“加减乘除的加”、“正负的正”,还有充当连接符的作用。

任意数据类型的数据与字符串相连接的时候,那个+号就是连接符

public class HelloWorld {public static void main(String[] args){System.out.println(1+"abc");
    }
}
//输出1abc

④在Java中,针对byte类型和short类型的时候,当赋值运算符右侧存在变量时,均报错,而C正常运行
即:当定义只要byte类型和short类型的时候,右边有一个是变量,就会编译报错

public class HelloWorld {public static void main(String[] args) {byte a=1;
        a=a+1;    //报错
        System.out.println(a);
    }
}
2. 自增、自减运算符

① 变量自增(Increment)运算符++和自减(Decrement)运算符--,其作用是使被操作的变量的值增加1或减少1。作用主要是提高程序的编译效率,也增加了程序的简洁性。

② 是单目运算符,只需要一个操作数,而且操作数必须是变量。它们的优先级与其他单目运算符一样,高于所有双目运算符,且具有右结合性。

③既可以放在变量的前面,称为前++(Prefix Increment)和前- -(Prefix Decrement);也可以放在变量的后面,称为后++(Postix Increment)和后- -(Postix Decrement)结果不同。
格式如下:

++<变量>、--<变量>、<变量>++<变量>--

④前++、**前–**表示先对变量进行自增、自减1运算,再将变量更新后的值作为自增、自减表达式的值。后++、**后- -**表示先将变量原来的值作为自增、自减表达式的值,再对变量进行自增、自减1运算。

⑤只能操作变量,类似于(-b)--的格式是非法的。

⑥自增、自减运算符自带强制转换,即

byte a=1;
a++   //a=(byte)a+1

从而保证不报错

3. 复合赋值运算符

① Java语言还提供另一种形式的赋值运算符,称为复合赋值(Combined Assignment)运算符。它由双目运算符与双目赋值运算符一起构成。包括+=-=*=/=%=
② 格式如下:

<变量><双目赋值运算符>=<表达式>
a*=a+1

上述语法等价于:

<变量>=<变量><双目运算符><表达式>
a=a*(a+1)

③同样具有强制转换

byte a=1;
a+=1   //a=(byte)a+1
4. 关系运算符*

关系(Relational)运算是用来比较两个操作数的值的运算,比较的结果是一个逻辑值,即只能是“真”或“假”。若比较条件得到满足,则结果为真;否则,结果为假。C语言中关系运算共6种,包括:小于、小于或等于、大于、大于或等于、等于、不等于,分别使用运算符<>>===!=


与C语言区别在于

关系运算符得出来的结果一定是boolean类型的数据,也就是说要么是true,要么是false

四 Java运算符与C总结 1. 算术运算符

①在Java中+号的含义除了“加减乘除的加”、“正负的正”,还有充当连接符的作用。
任意数据类型的数据与字符串相连接的时候,那个+号就是连接符。
②当定义只要byte类型和short类型的时候,右边有一个是变量,就会编译报错

2. 关系运算符

关系运算符得出来的结果一定是boolean类型的数据,也就是说要么是true,要么是false

其余

①自增、自减运算符、复合赋值运算符自带强制转换,对于byte类型和short类型不会编译报错

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:自掘Java----③(运算符与C的区别)待续-创新互联
网站URL:http://myzitong.com/article/djgpch.html