Menginisialisasi struct
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 42 dari 63.
Meskipun kamu dapat membuat variabel struct lalu menetapkan nilai ke setiap anggotanya satu per satu, C menyediakan cara yang lebih praktis untuk menetapkan nilai awal. Kamu dapat menginisialisasi variabel struct saat deklarasi menggunakan daftar inisialisasi yang diapit tanda kurung kurawal.
Sintaks untuk inisialisasi struct adalah:
struct StructureName variableName = {value1, value2, ...};Dengan contoh struct Point kita, kamu bisa mendeklarasikan dan menginisialisasinya dalam satu baris yang rapi:
struct Point p1 = {10, 20};Ini membuat variabel Point bernama p1 dengan x bernilai 10 dan y bernilai 20. Nilai dalam daftar inisialisasi ditetapkan ke anggota struct sesuai urutan deklarasinya dalam definisi struct.
Pendekatan inisialisasi ini tidak hanya lebih ringkas daripada penetapan terpisah, tetapi juga memastikan struct-mu dimulai dengan nilai yang bermakna, bukan data acak yang tidak berguna. Pendekatan ini sangat berguna saat kamu mengetahui nilai awal pada waktu kompilasi dan ingin membuat variabel struct yang siap digunakan secara efisien.
Tantangan
MudahBuat program C yang menunjukkan inisialisasi struct menggunakan daftar inisialisasi. Programmu harus:
- Mendefinisikan
structbernamaEmployeedengan anggota berikut:- Integer
iduntuk menyimpan ID karyawan - Array karakter
departmentberukuran 15 untuk menyimpan nama departemen - Integer
yearsOfServiceuntuk menyimpan masa kerja - Float
salaryuntuk menyimpan gaji karyawan
- Integer
- Membuat tiga variabel
Employeemenggunakan daftar inisialisasi dengan data berikut:emp1: ID 101, departemen "Engineering", masa kerja 5 tahun, gaji 75000.50emp2: ID 102, departemen "Marketing", masa kerja 3 tahun, gaji 65000.25emp3: ID 103, departemen "Sales", masa kerja 8 tahun, gaji 80000.75
- Mencetak informasi setiap karyawan dengan format persis berikut:
Employee 1:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]Employee 2:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]Employee 3:ID: [id]Department: [department]Years of Service: [yearsOfService]Salary: [salary]
- Menghitung dan mencetak total gaji ketiga karyawan dengan format:
Total Salary: [total] - Menghitung dan mencetak rata-rata masa kerja dengan format:
Average Years of Service: [average]
Tantangan ini menguji pemahamanmu tentang inisialisasi struct menggunakan daftar inisialisasi, yang memungkinkanmu mendeklarasikan dan menginisialisasi variabel struct dalam satu baris. Nilai dalam daftar inisialisasi harus diberikan dengan urutan yang sama seperti urutan deklarasi anggota dalam definisi struct.
Output yang diharapkan:
Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33Coba sendiri
#include <stdio.h>
// TODO: Definisikan struct Employee di sini
int main() {
// TODO: Buat tiga variabel Employee menggunakan list inisialisasi
// TODO: Cetak informasi setiap karyawan
// TODO: Hitung dan cetak total gaji serta rata-rata masa kerja
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter7Struktur (struct)
Apa Itu struct?Mendeklarasikan structMembuat Variabel structMengakses Anggota structMenginisialisasi structRingkasan: struct Data Siswa2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online