2016-07-20 64 views
-2

這是一個很多討論的問題,但是我的疑問是,C++ *中的 等於*(t ++),因爲++(後增加運算符)的優先級大於*。因此,在 while(* t ++ = * s ++); 當從s複製到t時不會跳過第一個字符; 爲了更好地構建它,複製是在增量操作符之前發生還是之後發生的,爲什麼?* t ++ = * s ++;字符串拷貝

+0

你可以寫一個測試程序,併爲自己學習... – John3136

回答

2

不,第一個字符不會被跳過。 t++(後遞增)的結果是增量發生前的值爲t,所以指針解除引用指向t之前指向的位置遞增。您可以使用預增加運算符(++t)來遞增t並在增量後生成該值。