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

Cara Meneruskan Array 1D dan 2D ke Fungsi dalam C – Panduan Praktis

Cara Meneruskan Array 1D dan 2D ke Fungsi dalam C

Tutorial ini menjelaskan cara meneruskan seluruh array—baik satu dimensi maupun multidimensi—ke fungsi dalam C, dengan contoh kode yang jelas dan tips praktik terbaik.

Dalam C, nama array akan mereduksi menjadi pointer saat diteruskan ke fungsi, memungkinkan fungsi untuk bekerja pada data asli tanpa menyalinnya. Memahami perilaku ini sangat penting untuk kode yang efisien dan mudah dirawat.


Meneruskan Elemen Array Tunggal

Meneruskan satu elemen sama dengan meneruskan tipe primitif apa pun.

Contoh 1: Meneruskan Elemen Array Tunggal

#include <stdio.h> void display(int age1, int age2) { printf("%d\n", age1); printf("%d\n", age2); } int main() { int ageArray[] = {2, 8, 4, 12}; // Meneruskan elemen kedua dan ketiga ke display() display(ageArray[1], ageArray[2]); return 0; } 

Keluaran

 8 4 

Di sini kita meneruskan ageArray[1] dan ageArray[2] seperti variabel biasa. Fungsi menerima mereka menurut nilai, sehingga array asli tetap tidak berubah.


Meneruskan Seluruh Array Satu Dimensi

Untuk menyerahkan seluruh array ke fungsi, cukup berikan nama array. Prototipe fungsi harus menunjukkan parameter array, tetapi ukuran aktual dapat dihilangkan. Kompilator memperlakukan parameter sebagai pointer ke elemen pertama.

Contoh 2: Menghitung Jumlah Array

#include <stdio.h> float calculateSum(float num[]); int main() { float result, num[] = {23.4, 55, 22.6, 3, 40.5, 18}; // Meneruskan seluruh array ke calculateSum() result = calculateSum(num); printf("Result = %.2f", result); return 0; } float calculateSum(float num[]) { float sum = 0.0; for (int i = 0; i < 6; ++i) { sum += num[i]; } return sum; } 

Keluaran

 Result = 162.50 

Tanda tangan fungsi float calculateSum(float num[]) memberitahu kompilator bahwa num adalah pointer ke array float. Loop memproses array secara langsung tanpa menyalinnya.


Meneruskan Array Multidimensi

Array multidimensi mengikuti prinsip yang sama: nama array mereduksi menjadi pointer ke baris pertama. Namun, kompilator harus mengetahui ukuran setiap dimensi kecuali yang pertama. Ini diperlukan sehingga kompilator dapat menghitung offset memori yang benar.

Contoh 3: Meneruskan Array Dua Dimensi

#include <stdio.h> void displayNumbers(int num[2][2]); int main() { int num[2][2]; printf("Masukkan 4 angka:\n"); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { scanf("%d", &num[i][j]); } } // Meneruskan array dua dimensi ke fungsi displayNumbers(num); return 0; } void displayNumbers(int num[2][2]) { printf("Menampilkan:\n"); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { printf("%d\n", num[i][j]); } } } 

Keluaran

 Masukkan 4 angka: 2 3 4 5 Menampilkan: 2 3 4 5 

Prototipe fungsi void displayNumbers(int num[2][2]) mendeklarasikan array integer 2×2. Saat memanggil fungsi, kita cukup meneruskan num; kompilator secara otomatis menangani konversi pointer.

Perhatikan bahwa Anda dapat menghilangkan dimensi baris tetapi harus menentukan ukuran kolom: int num[][2] valid, sedangkan ukuran kolom sangat penting untuk perhitungan alamat.


Penting: C memungkinkan meneruskan array ke fungsi, tetapi tidak mendukung mengembalikan array dari fungsi secara langsung. Gunakan pointer atau struktur jika Anda perlu mengembalikan data kompleks.

Bahasa C

  1. Menguasai Array C#: Deklarasi, Inisialisasi, dan Operasi
  2. Tipe Data C Dijelaskan: int, float, char, dan Lainnya – Panduan Lengkap
  3. Menguasai Pernyataan Pass Python: Panduan Praktis
  4. Menguasai Argumen Fungsi Python: Posisi, Kata Kunci, dan Parameter Default
  5. Penutupan (Closure) Python Dijelaskan: Cara Fungsi Bertingkat Mengambil Variabel
  6. Penggunaan Memori Efisien dengan Bit Field C
  7. Menguasai File I/O dalam C: Membuat, Membuka, dan Mengelola File
  8. Menguasai Argumen Variabel dalam C: Panduan Praktis
  9. Memahami Polimorfisme C++: Panduan Praktis
  10. Metode C#: Mendefinisikan, Memanggil, dan Menggunakan Fungsi