运算符=与==在程序中经常使用,请简述运算符=与==有什么区别?
专家解答
这两个运算符经常被混淆,很多程序开发人员在相等条件判断时使用了赋值运算符,即=符号,从而造成程序错误,所以关于这两个运算符的面试题出现的几率很高。=是赋值运算符,用于为变量或常量赋值,而==则是表示相等关系的关系运算符,通常用于进行条件判断。赋值运算符:
赋值运算符=是双目运算符,其作用就是为变量赋值,符号是=及其扩展运算符+=、-=、*=、/=、%=、&=和^=等。其中=用于把右边表达式的值赋值给左边的变量;而扩展运算符的作用是用左边变量的值和右边表达式的值进行相应运算后,再把运算结果赋值给左边的
变量。
例如:
longlen=5000 //把5000赋给变量len,所以len的值是5000
len+=500 //相当于len=len+500,所以len的值是5500
关系运算符。
关系运算符用于比较两个值的大小关系,运算结果是逻辑值真(true)或逻辑值假(false)。关系运算符包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6个。。关系运算符的用法和说明如表3.2所示。
表3.2关系运算符的用法及说明
== 就是等于的意思1.对于类来说
class class1= “aa”(作用,内存中开辟一块空间,并保存值“aa”)
class class2= “aa”(作用,内存中开辟一块空间,并保存值“aa”)
class1 == class2 的返回值是false (虽然class1,class2的值都是“aa”,但指向的内存不一样,所以认为是两个不一样的东西)
class class1= “aa”(作用,内存中开辟一块空间,并保存值“aa”)
class class2(作用,内存中开辟一块空间)
class2=class1;(作用,class2指向class1,使class1,class2指向相同的内存)
class1 == class2 返回值就是 true
2.对于值来说 就是单纯的值判断
例如
int i =1
int j = 1
i== j 返回值是true
按 照 运 算 符 功 能 来 分 ,基 本 的 运 算 符 有 下 面 几 类 :
1.算 术 运 算 符 (+,-,*,/,%,++,--)
2.关 系 运 算 符 (>,<,>=,<=,==,!=)
3.布 尔 逻 辑 运 算 符 (!,&&,)
4.位 运 算 符 (>>,<<,>>>,&,,^,~ )
5.赋 值 运 算 符 (=,及 其 扩 展 赋 值 运 算 符 如 +=)
6.条 件 运 算 符 ( ?:)
7.其 它 (包 括 分 量 运 算 符 · ,下 标 运 算 符 [],实 例 运 算 符 instanc eof,内 存 分 配 运 算 符 new,强 制 类
型 转 换 运 算 符 (类 型 ),方 法 调 用 运 算 符 () 等 )
资料引用:http://www.knowsky.com/370305.html