C Struktur dan Fungsi

Dalam tutorial ini, Anda akan belajar meneruskan variabel struct sebagai argumen ke suatu fungsi. Anda akan belajar mengembalikan struct dari fungsi dengan bantuan contoh.

Mirip dengan variabel jenis built-in, Anda juga dapat meneruskan variabel struktur ke suatu fungsi.

Meneruskan struct ke fungsi

Kami merekomendasikan Anda untuk mempelajari tutorial ini sebelum Anda mempelajari cara meneruskan struct ke fungsi.

  • Struktur C.
  • Fungsi C.
  • Fungsi yang Ditentukan Pengguna

Inilah cara Anda meneruskan struktur ke suatu fungsi

 #include struct student ( char name(50); int age; ); // function prototype void display(struct student s); int main() ( struct student s1; printf("Enter name: "); // read string input from the user until is entered // is discarded scanf("%(^)%*c", s1.name); printf("Enter age: "); scanf("%d", &s1.age); display(s1); // passing struct as an argument return 0; ) void display(struct student s) ( printf("Displaying information"); printf("Name: %s", s.name); printf("Age: %d", s.age); )

Keluaran

 Masukkan nama: Bond Umur: 13 Menampilkan informasi Nama: Bond Umur: 13 

Di sini, variabel struct s1 tipe struct studentdibuat. Variabel diteruskan ke display()fungsi menggunakan display(s1);pernyataan.

Kembalikan struct dari suatu fungsi

Berikut cara mengembalikan struktur dari suatu fungsi:

 #include struct student ( char name(50); int age; ); // function prototype struct student getInformation(); int main() ( struct student s; s = getInformation(); printf("Displaying information"); printf("Name: %s", s.name); printf("Roll: %d", s.age); return 0; ) struct student getInformation() ( struct student s1; printf("Enter name: "); scanf ("%(^)%*c", s1.name); printf("Enter age: "); scanf("%d", &s1.age); return s1; ) 

Di sini, getInformation()fungsinya disebut using s = getInformation();statement. Fungsi mengembalikan struktur tipe struct student. Struktur yang dikembalikan ditampilkan dari main()fungsi.

Perhatikan bahwa, tipe kembalian getInformation()juga struct student.

Meneruskan struct dengan referensi

Anda juga bisa meneruskan struct dengan referensi (dengan cara yang sama seperti Anda meneruskan variabel tipe built-in dengan referensi). Kami menyarankan Anda untuk membaca tutorial referensi lewat sebelum Anda melanjutkan.

Selama melewati referensi, alamat memori variabel struct diteruskan ke fungsi.

 #include typedef struct Complex ( float real; float imag; ) complex; void addNumbers(complex c1, complex c2, complex *result); int main() ( complex c1, c2, result; printf("For first number,"); printf("Enter real part: "); scanf("%f", &c1.real); printf("Enter imaginary part: "); scanf("%f", &c1.imag); printf("For second number, "); printf("Enter real part: "); scanf("%f", &c2.real); printf("Enter imaginary part: "); scanf("%f", &c2.imag); addNumbers(c1, c2, &result); printf("result.real = %.1f", result.real); printf("result.imag = %.1f", result.imag); return 0; ) void addNumbers(complex c1, complex c2, complex *result) ( result->real = c1.real + c2.real; result->imag = c1.imag + c2.imag; ) 

Keluaran

 Untuk bilangan pertama, Masukkan bagian nyata: 1.1 Masukkan bagian imajiner: -2.4 Untuk nomor kedua, Masukkan bagian nyata: 3.4 Masukkan bagian imajiner: -3.2 result.real = 4.5 result.imag = -5.6 

Dalam program di atas, tiga variabel struktur c1, c2 dan alamat hasil diteruskan ke addNumbers()fungsi. Di sini, hasil diteruskan dengan referensi.

Ketika variabel hasil di dalam addNumbers()diubah, variabel hasil di dalam main()fungsi juga diubah sesuai.

Artikel yang menarik...