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

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

Susan Sarandon
發布: 2024-12-20 03:52:13
原創
456 人瀏覽過

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

指標:ptr、 ptr 和*ptr

這些指標表達式常令人困惑,所以讓我們常常令人困惑,所以讓我們澄清一下它們意義:

1。 *ptr :

  • 取消引用指標 ptr 並傳回指向的值。
  • 增加指標 ptr 以指向下一個元素。

範例:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *ptr++; // Outputs 1 and then points to the next element (2)
登入後複製

2. * ptr:

  • 先遞增指標,將其移至下一個元素。
  • 然後,дереференсирует 更新後的指針,返回指向的值到。

範例:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *++ptr; // Moves the pointer to the next element and outputs 2
登入後複製

3. *ptr:

  • 解引用指向的值。
  • 然後,遞增解所引用的值。

注意: 增加數值,而不是指標ptr.

範例:

int *ptr = new int(5); // Points to a dynamically allocated integer
cout << ++*ptr; // Outputs 6 and updates the dereferenced integer to 6
登入後複製

4. Bonus: (4. Bonus: *ptr) :

  • 強制取消引用 ptr,從而取得指向的值。
  • 增加取消引用的值。

注意:與 *ptr 類似,它會影響數值,而不是指標本身。

範例:

int *ptr = new int(5);
cout << (*ptr)++; // Outputs 5 and updates the dereferenced integer to 6
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板