理解這三個指標表達式可能會令人畏懼。本詳細指南將分解每個表達式的操作,並提供其在程式碼中實際應用的範例。
此表達式取消引用指針,然後遞增指針的值位址.
範例:
char *p = "Hello"; while (*p++) { printf("%c", *p); }
範例:
此代碼列印“ello”而不是“Hello”,因為存取字元後指標會遞增,跳過'H' 字元。 * ptr
這個表達式增加指標的位址,然後取消引用指標。
char *p = "Hello"; printf("%c", *++p);
範例:
此程式碼列印「e」作為後面的字元初始指標值(指向「H」)在遞增以指向之前被存取' e'. *ptr
此表達式取消引用指針,然後遞增位址 處的值。
char q[] = "Hello"; char *p = q; printf("%c", ++*p);
範例:
此程式碼列印「I」作為值位址直接遞增為「I」。 (*ptr)
此表達式略有不同,在遞加值之前強制取消引用。
char q[] = "Hello"; char *p = q; printf("%c", (*p)++);
範例:
此程式碼列印“H”,然後下一個增量目標為“I”。
結論這些指標表達式提供了指標運算的彈性。然而,了解它們的複雜性至關重要,包括優先順序、價值評估和副作用。透過詳細了解這些操作,您可以在程式碼中有效地利用它們並避免潛在的陷阱。以上是C/C 中的 `ptr`、`ptr` 和 `*ptr` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!