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

struktur C

struktur C

Dalam tutorial ini, Anda akan belajar tentang tipe struct dalam Pemrograman C dengan bantuan contoh.

Dalam pemrograman C, struct (atau struktur) adalah kumpulan variabel (bisa dari jenis yang berbeda) di bawah satu nama.


Tentukan Struktur

Sebelum Anda dapat membuat variabel struktur, Anda perlu menentukan tipe datanya. Untuk mendefinisikan sebuah struct, struct kata kunci digunakan.

Sintaks struct

struct structureName {
  dataType member1;
  dataType member2;
  ...
};

Misalnya,

struct Person {
  char name[50];
  int citNo;
  float salary;
};

Di sini, tipe turunan struct Person didefinisikan. Sekarang, Anda dapat membuat variabel jenis ini.


Buat Variabel struct

Ketika struct type dideklarasikan, tidak ada penyimpanan atau memori yang dialokasikan. Untuk mengalokasikan memori dari tipe struktur tertentu dan bekerja dengannya, kita perlu membuat variabel.

Berikut cara membuat variabel struktur:

struct Person {
  // code
};

int main() {
  struct Person person1, person2, p[20];
  return 0;
}

Cara lain untuk membuat struct variabelnya adalah:

struct Person {
   // code
} person1, person2, p[20];

Dalam kedua kasus,


Mengakses Anggota Struktur

Ada dua jenis operator yang digunakan untuk mengakses anggota struktur.

  1. . - Operator anggota
  2. -> - Operator penunjuk struktur (akan dibahas pada tutorial berikutnya)

Misalkan, Anda ingin mengakses gaji dari person2 . Inilah cara Anda melakukannya.

person2.salary

Contoh 1:Struktur C++

#include <stdio.h>
#include <string.h>

// create struct with person1 variable
struct Person {
  char name[50];
  int citNo;
  float salary;
} person1;

int main() {

  // assign value to name of person1
  strcpy(person1.name, "George Orwell");

  // assign values to other person1 variables
  person1.citNo = 1984;
  person1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", person1.name);
  printf("Citizenship No.: %d\n", person1.citNo);
  printf("Salary: %.2f", person1.salary);

  return 0;
}

Keluaran

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Dalam program ini, kami telah membuat struct bernama Person . Kami juga telah membuat variabel Person bernama person1 .

Di main() , kami telah menetapkan nilai ke variabel yang didefinisikan dalam Person untuk person1 objek.

strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;

Perhatikan bahwa kita telah menggunakan strcpy() fungsi untuk menetapkan nilai ke person1.name .

Ini karena nama adalah char array (C-string) dan kita tidak dapat menggunakan operator penugasan = dengannya setelah kita mendeklarasikan string.

Akhirnya, kami mencetak data person1 .


Ketik kata kunci

Kami menggunakan typedef kata kunci untuk membuat nama alias untuk tipe data. Ini biasanya digunakan dengan struktur untuk menyederhanakan sintaks dari mendeklarasikan variabel.

Sebagai contoh, mari kita lihat kode berikut:

struct Distance{
  int feet;
  float inch;
};

int main() {
  struct Distance d1, d2;
}

Kita dapat menggunakan typedef untuk menulis kode yang setara dengan sintaks yang disederhanakan:

typedef struct Distance {
  int feet;
  float inch;
} distances;

int main() {
  distances d1, d2;
}

Contoh 2:C++ typedef

#include <stdio.h>
#include <string.h>

// struct with typedef person
typedef struct Person {
  char name[50];
  int citNo;
  float salary;
} person;

int main() {

  // create  Person variable
  person p1;

  // assign value to name of p1
  strcpy(p1.name, "George Orwell");

  // assign values to other p1 variables
  p1.citNo = 1984;
  p1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", p1.name);
  printf("Citizenship No.: %d\n", p1.citNo);
  printf("Salary: %.2f", p1.salary);

  return 0;
}

Keluaran

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Di sini, kami telah menggunakan typedef dengan Person struktur untuk membuat alias person .

// struct with typedef person
typedef struct Person {
  // code
} person;

Sekarang, kita cukup mendeklarasikan Person variabel menggunakan person alias:

// equivalent to struct Person p1
person p1;

Struktur Bersarang

Anda dapat membuat struktur dalam struktur dalam pemrograman C. Misalnya,

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integers;
} num1, num2;

Misalkan, Anda ingin mengatur imag dari num2 variabel ke 11 . Berikut cara melakukannya:

num2.comp.imag = 11;

Contoh 3:Struktur Bersarang C++

#include <stdio.h>

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integer;
} num1;

int main() {

  // initialize complex variables
  num1.comp.imag = 11;
  num1.comp.real = 5.25;

  // initialize number variable
  num1.integer = 6;
	
  // print struct variables
  printf("Imaginary Part: %d\n", num1.comp.imag);
  printf("Real Part: %.2f\n", num1.comp.real);
  printf("Integer: %d", num1.integer);

  return 0;
}

Keluaran

Imaginary Part: 11
Real Part: 5.25
Integer: 6

Mengapa struct di C?

Misalkan, Anda ingin menyimpan informasi tentang seseorang:namanya, nomor kewarganegaraan, dan gajinya. Anda dapat membuat variabel yang berbeda name , citNo dan gaji untuk menyimpan informasi ini.

Bagaimana jika Anda perlu menyimpan informasi lebih dari satu orang? Sekarang, Anda perlu membuat variabel yang berbeda untuk setiap informasi per orang:name1 , citNo1 , gaji1 , nama2 , citNo2 , gaji2 , dll.

Pendekatan yang lebih baik adalah memiliki kumpulan semua informasi terkait di bawah satu nama Person struktur dan gunakan untuk setiap orang.


Selengkapnya tentang struct


Bahasa C

  1. C# Hello World - Program C# Pertama Anda
  2. C# Kata Kunci dan Pengidentifikasi
  3. Variabel C# dan Tipe Data (Primitif)
  4. C# Operator
  5. C# Bitwise dan Bit Shift Operator
  6. C# Input dan Output Dasar
  7. C# Ekspresi, Pernyataan, dan Blok (Dengan Contoh)
  8. C# Komentar
  9. Pernyataan sakelar C#
  10. C# ternary (? :) Operator