Rumah > pembangunan bahagian belakang > C++ > Apakah maksud x- dalam bahasa C?

Apakah maksud x- dalam bahasa C?

下次还敢
Lepaskan: 2024-05-02 19:54:46
asal
485 orang telah melayarinya

"x->" dalam bahasa C ialah pengendali anak panah, digunakan untuk mengakses struktur atau ahli kesatuan yang ditunjuk oleh penunjuk Ia digunakan terutamanya dalam situasi berikut: mengakses struktur atau ahli kesatuan melalui penunjuk apabila struktur Apabila anda perlu elakkan amaran pengkompil apabila badan atau kesatuan ditakrifkan sebagai typedef

Apakah maksud x- dalam bahasa C?

Apakah maksud "x->" dalam bahasa C?

"x->" dalam bahasa C ialah pengendali anak panah, digunakan untuk mengakses struktur atau ahli kesatuan. Ia serupa dengan pengendali titik ("."), tetapi mempunyai perbezaan utama berikut:

1 Penunjuk struktur:

Pengendali titik digunakan untuk mengakses ahli pembolehubah struktur, manakala pengendali anak panah ialah. digunakan untuk mengakses ahli pembolehubah struktur melalui Ahli struktur yang ditunjuk oleh penunjuk. Contohnya:

<code class="c">struct Person {
  char name[20];
  int age;
};

Person p = { "John", 30 };

printf("%s is %d years old.\n", p.name, p.age);</code>
Salin selepas log masuk
<code class="c">struct Person *ptr = &p;

printf("%s is %d years old.\n", ptr->name, ptr->age);</code>
Salin selepas log masuk

2. Penyahrujukan:

Pengendali anak panah secara automatik menyahrujuk penunjuk struktur, yang bermaksud ia mula-mula mendapatkan struktur yang ditunjukkan oleh penunjuk sebelum mengakses ahlinya. Operator titik menganggap bahawa pembolehubah struktur sudah wujud dan tidak perlu dinyahrujuk.

Bila hendak menggunakan "x->"?

Pengendali anak panah digunakan dalam situasi berikut:

  • Apabila mengakses struktur atau ahli kesatuan melalui penunjuk.
  • Apabila struktur atau kesatuan ditakrifkan sebagai typedef.
  • Apabila anda perlu mengelakkan amaran pengkompil (cth. petunjuk yang mungkin tidak dimulakan).

Contoh penggunaan:

<code class="c">// 通过指针访问结构体
struct Student {
  char name[20];
  int marks;
};

Student *s = malloc(sizeof(Student));
strcpy(s->name, "Jane");
s->marks = 90;</code>
Salin selepas log masuk
<code class="c">// 定义 typedef 结构体
typedef struct {
  char name[20];
  int age;
} Person;

Person *p = malloc(sizeof(Person));
strcpy(p->name, "John");
p->age = 30;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah maksud x- dalam bahasa C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan