文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>警惕复合赋值操作符

警惕复合赋值操作符

时间:2010-09-14  来源:hjhnju

复合赋值操作符包括*=、/=、%=、+=、-=、<&lt;=、>&gt;=、&gt;&gt;&gt;=、&=、^=和|=。

这种操作可能会自动地执行窄化原始类型转换,如

short ori = –1;

ori&gt;&gt;&gt;=1; 表示的真实含义是先将ori进行符号扩展成int, 再进行无符号右移1位,然后窄化类型转换成short。

以下循环将无限执行

short ori = -1;
while(ori != 0){
    ori &gt;&gt;&gt;= 1; 
}

使用byte声明也一样。char声明则因为char是无符号的,进行无符号扩展成int, 是有限循环。

语句若不使用复合赋值操作符,而使用

short ori = -1;
ori = ori &gt;&gt;&gt;1; 

则无法通过编译;需要显式Cast: ori = (short)(ori&gt;&gt;1);

Java解惑:总之,不要在short、byte或char类型的变量之上使用复合赋值操作符。因为这样的表达式执行的是混合类型算术运算,它容易造成混乱。更糟的是,它们执行将隐式地执行会丢失信息的窄化转型,其结果是灾难性的。

相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载