这是一个备受争议的问题,但我怀疑的是 在C中,* t ++相当于*(t ++),因为++(后增量运算符)的优先级大于*。因此,在 while(* t ++ = * s ++); 从s复制到t时,不会跳过第一个字符; 为了更好地构建它,复制是在增量运算符之前还是之后进行,为什么?
答案 0 :(得分:2)
不,第一个角色不会被跳过。评估t++
(后递增)的结果是在增量发生之前t
的值,因此指针取消引用将转到t
递增之前指向的位置。您可以使用预增量运算符(++t
)递增t
并在增量后生成值。