当你有声明时:
var shadowBounds = self.bounds
shadowBounds = CGRectOffset(shadowBounds, -1, 1)
let cornerRadius = 6
layer.shadowPath = UIBezierPath(roundedRect: shadowBounds, cornerRadius: cornerRadius).CGPath
*str++ = *end
是否被分配了*str
的值,或者它是否会增加,然后被赋予*end
的值?
答案 0 :(得分:5)
作为后增量运算符,它首先指定*end
,然后指向str
的新/递增地址。
答案 1 :(得分:1)
逻辑,表达式的计算结果如下:
t0 = str;
t1 = *end;
str = str + 1;
*t0 = t1;
除了这些操作发生的确切顺序是未指定。以下序列也是可能的:
t0 = str;
str = str + 1;
t1 = *end;
*t0 = t1;
t0 = *end;
t1 = str;
*t1 = t0;
str = str + 1;
t0 = *end;
t1 = str;
str = str + 1;
*t1 = t0;
一个常数是我们在增量之前更新str
指向的位置。