首頁 >後端開發 >C++ >C/C 中的 `ptr`、`ptr` 和 `*ptr` 有什麼不同?

C/C 中的 `ptr`、`ptr` 和 `*ptr` 有什麼不同?

Linda Hamilton
Linda Hamilton原創
2024-12-20 07:20:09247瀏覽

What's the Difference Between `ptr  `, `  ptr`, and `  *ptr` in C/C  ?

指標表達式:ptr、 ptr 和 *ptr

理解這三個指標表達式可能會令人畏懼。本詳細指南將分解每個表達式的操作,並提供其在程式碼中實際應用的範例。

*ptr

此表達式取消引用指針,然後遞增指針的值位址.

範例:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn