3 回答

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
這是使C和C ++變得如此有趣的那些小陷阱之一。如果您想彎曲您的大腦,請找出這一點(diǎn):
while (*dst++ = *src++) ;
這是一個(gè)字符串副本。指針不斷遞增,直到復(fù)制了值為零的字符。一旦知道了這種技巧的作用,您將永遠(yuǎn)不會忘記++如何再次處理指針。
PS您始終可以用括號覆蓋運(yùn)算符順序。以下將增加所指向的值,而不是指針本身:
(*our_var_ptr)++;

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
好,
*our_var_ptr++;
它是這樣的:
取消引用首先發(fā)生,給您指示的存儲位置our_var_ptr(包含63)。
然后對表達(dá)式求值,結(jié)果63仍然是63。
結(jié)果被丟棄(您對此不做任何事情)。
our_var_ptr然后在評估后增加。它正在改變指針指向的位置,而不是指針指向的位置。
它實(shí)際上與執(zhí)行此操作相同:
*our_var_ptr;
our_var_ptr = our_var_ptr + 1;
說得通?馬克·蘭瑟姆(Mark Ransom)的答案很好地說明了這一點(diǎn),只是他實(shí)際上使用了結(jié)果。
- 3 回答
- 0 關(guān)注
- 432 瀏覽
添加回答
舉報(bào)