Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Menguasai Struct dan Pointer C: Panduan Praktis

Menguasai Struct dan Pointer C: Panduan Praktis

Temukan cara memanfaatkan pointer untuk menavigasi anggota struct, dan pelajari alokasi memori dinamis untuk struktur data C yang fleksibel.

Sebelum menyelami pointer dengan struct, familiaraskan diri Anda dengan topik dasar ini:


Menggunakan Pointer untuk Mereferensikan Struct

Di bawah ini adalah contoh ringkas yang menunjukkan cara mendeklarasikan struct dan pointer yang mereferensikannya.

struct Person { int member1; int member2; /* anggota tambahan */ }; int main(void) { struct Person *ptr, harry; /* ptr sekarang dapat menunjuk ke instance Person apa pun */ } 

Dalam cuplikan ini, ptr adalah pointer ke instance struct Person.


Contoh: Mengakses Anggota Struct melalui Pointer

Untuk membaca atau menulis bidang struct melalui pointer, gunakan operator ->.

#include <stdio.h> struct Person { int age; float weight; }; int main(void) { struct Person *personPtr, person1; personPtr = &person1; /* point to person1 */ printf("Masukkan usia: "); scanf("%d", &personPtr->age); printf("Masukkan berat badan: "); scanf("%f", &personPtr->weight); printf("\nMenampilkan:\n"); printf("Usia: %d\n", personPtr->age); printf("Berat badan: %f", personPtr->weight); return 0; } 

Di sini, personPtr = &person1; menyimpan alamat person1 di personPtr. Akses berikutnya melalui personPtr->field setara dengan (*personPtr).field, menawarkan sintaks yang ringkas.


Alokasi Memori Dinamis untuk Struct

Ketika jumlah instance struct yang diperlukan tidak diketahui pada waktu kompilasi, alokasikan memori pada waktu runtime menggunakan pustaka standar C.

Contoh: Mengalokasikan Array Struct

#include <stdio.h> #include <stdlib.h> struct Person { int age; float weight; char name[30]; }; int main(void) { struct Person *ptr; int i, n; printf("Masukkan jumlah orang: "); scanf("%d", &n); ptr = (struct Person*)malloc(n * sizeof(struct Person)); if (!ptr) { fprintf(stderr, "Alokasi memori gagal\n"); return EXIT_FAILURE; } for (i = 0; i < n; ++i) { printf("Masukkan nama depan dan usia masing-masing: "); scanf("%s %d", (ptr + i)->name, &(ptr + i)->age); } printf("\nMenampilkan Informasi:\n"); for (i = 0; i < n; ++i) { printf("Nama: %s\tUsia: %d\n", (ptr + i)->name, (ptr + i)->age); } free(ptr); return 0; } 

Menjalankan program menghasilkan:

Masukkan jumlah orang: 2 Masukkan nama depan dan usia masing-masing: Harry 24 Masukkan nama depan dan usia masing-masing: Gary 32 Menampilkan Informasi: Nama: Harry Usia: 24 Nama: Gary Usia: 32 

Contoh ini menunjukkan cara membuat n instance dari struct Person di heap, membaca input pengguna ke setiap instance, dan kemudian menampilkan hasilnya.



Bahasa C

  1. Memahami Kata Kunci dan Pengidentifikasi C#: Aturan, Daftar, dan Praktik Terbaik
  2. Kelas dan Objek C#: Fondasi untuk OOP yang Kuat
  3. Menguasai Kelas dan Metode Abstrak C#: Panduan Praktis
  4. Memahami Kelas dan Metode Parsial C#
  5. Menguasai Kelas dan Metode Tersegel di C#—Kapan Menggunakannya, Contoh Jelas, dan Tingkatkan Keamanan serta Performa Kode
  6. Memahami Struct C#: Definisi, Penggunaan, dan Perbedaan Utama
  7. Kata Kunci dan Pengidentifikasi C: Panduan Praktis
  8. Menguasai Pointer C: Tutorial Praktis dengan Panduan Ahli
  9. Memahami Hubungan Antara Array dan Pointer dalam C
  10. Pemrograman C: Meneruskan Alamat dan Pointer ke Fungsi – Panduan Praktis