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
Lepaskan: 2024-12-20 03:52:13
asal
574 orang telah melayarinya

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)
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan