新手在c編程。有人能幫我理解while循環在這段代碼中做什麼嗎?我從來沒有見過這種類型的while循環。奇怪的循環。困惑
但是,我確實知道它正在執行指針算術,但是它究竟是按照僞代碼還是簡單的英文來分解呢? :)
char*
cpy (char* s)
{
char *dest, *d;
d = dest = malloc(strlen(s) * sizeof(char) + 1);
if (d)
while ((*d++ = *s++));
return dest;
}
我相信這是複製從一個源到另一個字符串。它的性格是如此。它在一條線上做了很多工作。它將* d設置爲* s處的任何內容,並將它們遞增到下一個字符。當它最終到達空字符(字符串的末尾)時,它返回它,導致while循環結束。 – ritlew
您是否在K&R書中閱讀過此內容?你最好調用'memcpy'來複制一個字符串 –
尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤以及重現它所需的最短代碼這個問題本身。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 – Olaf