Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Antara `ptr `, ` ptr`, ` *ptr` dan `(*ptr) ` dalam C ?

Apakah Perbezaan Antara `ptr `, ` ptr`, ` *ptr` dan `(*ptr) ` dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-12-20 03:52:13492semak imbas

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

Petunjuk: ptr , ptr, dan *ptr

Ekspresi penunjuk ini sering mengelirukan, jadi mari kita jelaskan makna:

1. *ptr :

  • Menyahrujuk ptr penunjuk dan mengembalikan nilai yang ditunjuk.
  • Meningkatkan ptr penunjuk untuk menunjuk ke elemen seterusnya.

Contoh:

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

2. * ptr:

  • Naikkan penunjuk ptr dahulu, mengalihkannya ke elemen seterusnya.
  • Kemudian, дереференсирует penunjuk yang dikemas kini, mengembalikan nilai yang ditunjuk kepada.

Contoh:

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

3. *ptr:

  • Menyahrujuk ptr penunjuk, mengembalikan nilai yang ditunjuk.
  • Kemudian, menambah nilai yang dinyahrujuk.

Awas: Menaikkan nilai, bukan penunjuk ptr.

Contoh:

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

4. Bonus: (*ptr) :

  • Memaksa penyahrujukan ptr, yang memperoleh nilai ditunjuk-kepada.
  • Meningkatkan nilai yang dinyahrujuk.

Awas: Sama seperti *ptr, ia mempengaruhi nilai, bukan penunjuk itu sendiri.

Contoh:

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

Atas ialah kandungan terperinci Apakah Perbezaan Antara `ptr `, ` ptr`, ` *ptr` dan `(*ptr) ` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn