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

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

DDD
DDD原創
2024-12-23 21:07:14643瀏覽

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

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

在C 程式設計中,這三個表達式式很常見用於操作指標及其指向的值。了解它們的行為對於有效使用指標至關重要。

1. *ptr

  • 這個表達式實際上先取消引用指標,傳回它指向的值。
  • 然後,它遞增指標 移動一個單位,將其指向數組中的下一個元素或數組中的下一個字元字串。
  • 例如,如果 ptr 指向陣列的第一個元素,*ptr 將傳回該元素的值,然後遞增 ptr 以指向第二個元素。

2. * ptr

  • 與前面的表達式不同,這個先將指標增加一個單位。
  • 然後,它取消引用指標,傳回指標現在指向的值。
  • 當你需要時這很有用存取下一個元素的值而不取消引用當前指標。

3. *ptr

  • 此表達式直接遞增 ptr 指向的位置處的值。
  • 它首先取消引用指標,傳回它指向的值。
  • 然後,它將值增加一個單位。
  • 這可用於修改由ptr.

示例:

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;

printf("%d ", *ptr++); // Prints 1 and increments ptr to the second element
printf("%d ", *++ptr); // Increments ptr to the third element and prints 3
printf("%d\n", ++*ptr); // Increments the value at the third element and prints 4

輸出:

1 3 4

以上是C 中的 `*ptr`、`*ptr` 和 `ptr` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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