回 帖 发 新 帖 刷新版面

主题:请教:这几行语法是什么意思?

  x=(i&(1<<2)) ?max.x:min.x ;
  y=(i&(1<<1)) ?max.y:min.y ;
  z=(i&(1<<0)) ?max.z:min.z ;

回复列表 (共1个回复)

沙发

在没有重载“<<”运算符的情况下:
首先,应理解 "<<" 按位运算符,即二进制表示时,向左移动 int 位。
然后, "?:" 为双目运算符 (条件)?语句1:语句2;如果条件为t,则执行语句1;否则执行语句2.
而,max 和 min 应该是 结构或者其它自定义类型,并且它们都有3个成员,x , y ,z。
例:sturct max { int x = 4; int y = 5; int z = 6};
sturct min { int x = 7; int y = 8; int z = 9};
这样,差不多能够理解了吧,谢谢。个人意见,仅供参考。

我来回复

您尚未登录,请登录后再回复。点此登录或注册