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

C - Struktur

Array memungkinkan untuk menentukan jenis variabel yang dapat menampung beberapa item data dari jenis yang sama. Demikian pula struktur adalah tipe data yang ditentukan pengguna lain yang tersedia di C yang memungkinkan untuk menggabungkan item data dari berbagai jenis.

Struktur digunakan untuk merepresentasikan record. Misalkan Anda ingin melacak buku-buku Anda di perpustakaan. Anda mungkin ingin melacak atribut berikut tentang setiap buku −

Mendefinisikan Struktur

Untuk mendefinisikan struktur, Anda harus menggunakan struct penyataan. Pernyataan struct mendefinisikan tipe data baru, dengan lebih dari satu anggota. Format pernyataan struct adalah sebagai berikut

struct [structure tag] {

   member definition;
   member definition;
   ...
   member definition;
} [one or more structure variables];  

tag struktur adalah opsional dan setiap definisi anggota adalah definisi variabel normal, seperti int i; atau mengambang f; atau definisi variabel valid lainnya. Di akhir definisi struktur, sebelum titik koma terakhir, Anda dapat menentukan satu atau lebih variabel struktur tetapi ini opsional. Inilah cara Anda mendeklarasikan struktur Buku −

struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;  

Mengakses Anggota Struktur

Untuk mengakses setiap anggota struktur, kami menggunakan operator akses anggota (.) . Operator akses anggota dikodekan sebagai titik antara nama variabel struktur dan anggota struktur yang ingin kita akses. Anda akan menggunakan kata kunci struct untuk mendefinisikan variabel tipe struktur. Contoh berikut menunjukkan cara menggunakan struktur dalam program −

Demo Langsung
#include <stdio.h>
#include <string.h>
 
struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( ) {

   struct Books Book1;        /* Declare Book1 of type Book */
   struct Books Book2;        /* Declare Book2 of type Book */
 
   /* book 1 specification */
   strcpy( Book1.title, "C Programming");
   strcpy( Book1.author, "Nuha Ali"); 
   strcpy( Book1.subject, "C Programming Tutorial");
   Book1.book_id = 6495407;

   /* book 2 specification */
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Zara Ali");
   strcpy( Book2.subject, "Telecom Billing Tutorial");
   Book2.book_id = 6495700;
 
   /* print Book1 info */
   printf( "Book 1 title : %s\n", Book1.title);
   printf( "Book 1 author : %s\n", Book1.author);
   printf( "Book 1 subject : %s\n", Book1.subject);
   printf( "Book 1 book_id : %d\n", Book1.book_id);

   /* print Book2 info */
   printf( "Book 2 title : %s\n", Book2.title);
   printf( "Book 2 author : %s\n", Book2.author);
   printf( "Book 2 subject : %s\n", Book2.subject);
   printf( "Book 2 book_id : %d\n", Book2.book_id);

   return 0;
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

Struktur sebagai Argumen Fungsi

Anda dapat meneruskan struktur sebagai argumen fungsi dengan cara yang sama seperti Anda melewatkan variabel atau pointer lainnya.

Demo Langsung
#include <stdio.h>
#include <string.h>
 
struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};

/* function declaration */
void printBook( struct Books book );

int main( ) {

   struct Books Book1;        /* Declare Book1 of type Book */
   struct Books Book2;        /* Declare Book2 of type Book */
 
   /* book 1 specification */
   strcpy( Book1.title, "C Programming");
   strcpy( Book1.author, "Nuha Ali"); 
   strcpy( Book1.subject, "C Programming Tutorial");
   Book1.book_id = 6495407;

   /* book 2 specification */
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Zara Ali");
   strcpy( Book2.subject, "Telecom Billing Tutorial");
   Book2.book_id = 6495700;
 
   /* print Book1 info */
   printBook( Book1 );

   /* Print Book2 info */
   printBook( Book2 );

   return 0;
}

void printBook( struct Books book ) {

   printf( "Book title : %s\n", book.title);
   printf( "Book author : %s\n", book.author);
   printf( "Book subject : %s\n", book.subject);
   printf( "Book book_id : %d\n", book.book_id);
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Book title : C Programming
Book author : Nuha Ali
Book subject : C Programming Tutorial
Book book_id : 6495407
Book title : Telecom Billing
Book author : Zara Ali
Book subject : Telecom Billing Tutorial
Book book_id : 6495700

Penunjuk ke Struktur

Anda dapat mendefinisikan pointer ke struktur dengan cara yang sama seperti Anda mendefinisikan pointer ke variabel lain

struct Books *struct_pointer;

Sekarang, Anda dapat menyimpan alamat variabel struktur dalam variabel penunjuk yang ditentukan di atas. Untuk menemukan alamat variabel struktur, tempatkan '&'; operator sebelum nama struktur sebagai berikut −

struct_pointer = &Book1;

Untuk mengakses anggota struktur menggunakan pointer ke struktur itu, Anda harus menggunakan operator → sebagai berikut −

struct_pointer->title;

Mari kita tulis ulang contoh di atas menggunakan penunjuk struktur.

Demo Langsung
#include <stdio.h>
#include <string.h>
 
struct Books {
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};

/* function declaration */
void printBook( struct Books *book );
int main( ) {

   struct Books Book1;        /* Declare Book1 of type Book */
   struct Books Book2;        /* Declare Book2 of type Book */
 
   /* book 1 specification */
   strcpy( Book1.title, "C Programming");
   strcpy( Book1.author, "Nuha Ali"); 
   strcpy( Book1.subject, "C Programming Tutorial");
   Book1.book_id = 6495407;

   /* book 2 specification */
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Zara Ali");
   strcpy( Book2.subject, "Telecom Billing Tutorial");
   Book2.book_id = 6495700;
 
   /* print Book1 info by passing address of Book1 */
   printBook( &Book1 );

   /* print Book2 info by passing address of Book2 */
   printBook( &Book2 );

   return 0;
}

void printBook( struct Books *book ) {

   printf( "Book title : %s\n", book->title);
   printf( "Book author : %s\n", book->author);
   printf( "Book subject : %s\n", book->subject);
   printf( "Book book_id : %d\n", book->book_id);
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Book title : C Programming
Book author : Nuha Ali
Book subject : C Programming Tutorial
Book book_id : 6495407
Book title : Telecom Billing
Book author : Zara Ali
Book subject : Telecom Billing Tutorial
Book book_id : 6495700

Bidang Bit

Bit Fields memungkinkan pengepakan data dalam suatu struktur. Ini sangat berguna ketika memori atau penyimpanan data sangat mahal. Contoh umum termasuk −

C memungkinkan kita melakukan ini dalam definisi struktur dengan meletakkan :bit length setelah variabel. Misalnya

struct packed_struct {
   unsigned int f1:1;
   unsigned int f2:1;
   unsigned int f3:1;
   unsigned int f4:1;
   unsigned int type:4;
   unsigned int my_int:9;
} pack;

Di sini, packed_struct berisi 6 anggota:Empat flag 1 bit f1..f3, tipe 4-bit, dan my_int 9-bit.

C secara otomatis mengemas bidang bit di atas sekompak mungkin, asalkan panjang maksimum bidang kurang dari atau sama dengan panjang kata bilangan bulat komputer. Jika hal ini tidak terjadi, maka beberapa kompiler memungkinkan memori tumpang tindih untuk bidang sementara yang lain akan menyimpan bidang berikutnya di kata berikutnya.


Bahasa C

  1. Struktur dan kelas dalam C++
  2. Semaphores:layanan utilitas dan struktur data
  3. Resensi Buku:Digitize or Die
  4. Masa depan yang sangat manusiawi
  5. Teknologi Penyimpanan Data Magnetik Generasi Berikutnya
  6. 17 Buku Pemrograman Terbaik Untuk Dibaca Pada Tahun 2021
  7. Java - Struktur Data
  8. C - typedef
  9. Struktur Data C++
  10. C# - Struktur