2014-08-31 27 views

回答

2

指針p被澆鑄到char **和解除引用兩次,CH被複制到該位置,然後*p遞增(點到下一個字符。

我想象(因爲沒有代碼,所有我可以做)不工作的「p的情況下是本地的」與p是無關的,與p的值和所涉及的代碼的上下文語義有關。所有代碼是否工作都取決於p保持一個有效的值,使得雙解參考解析爲預期的位置。

說實話wever,你應該避免編寫這樣的代碼,它太「聰明」,並作爲Brian Kernighan說:

大家都知道,調試是加倍努力在首位寫一個程序。所以,如果你寫的時候你的聰明才智,你將如何進行調試?

0

P是字符指針pointer.Initially它被強制轉換爲char**和解除引用2和times.After提領2倍,在這個地方ch是copied.After它被遞增by1.Here,瞭解關於遞增這樣的指針,試圖理解如下。 *p++等於*pp++,不等於*p(*p)++。像這樣,你的指針也增加了。您的複製語句中有機會出現分段錯誤。