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

Memahami Hubungan Antara Array dan Pointer dalam C

Hubungan Antara Array dan Pointer

Dalam tutorial ini, Anda akan mempelajari hubungan antara array dan pointer dalam pemrograman C. Anda juga akan mempelajari cara mengakses elemen array menggunakan pointer.

Sebelum Anda mempelajari hubungan antara array dan pointer, pastikan untuk memeriksa dua topik ini:


Hubungan Antara Array dan Pointer

Array adalah blok data berurutan. Mari kita tulis program untuk mencetak alamat elemen array.

 #include <stdio.h> int main() { int x[4]; int i; for(i = 0; i < 4; ++i) { printf("&x[%d] = %p\n", i, &x[i]); } printf("Alamat array x: %p", x); return 0; } 

Keluaran

 &x[0] = 1450734448 &x[1] = 1450734452 &x[2] = 1450734456 &x[3] = 1450734460 Alamat array x: 1450734448 

Ada selisih 4 byte antara dua elemen berturut-turut array x. Ini karena ukuran int adalah 4 byte (pada kompilator kami).

Perhatikan bahwa alamat &x[0] dan x sama. Ini karena nama variabel x menunjuk ke elemen pertama array.

Memahami Hubungan Antara Array dan Pointer dalam C

Dari contoh di atas, jelas bahwa &x[0] setara dengan x. Dan, x[0] setara dengan *x.

Demikian pula,


Contoh 1: Pointer dan Array

 #include <stdio.h> int main() { int i, x[6], sum = 0; printf("Masukkan 6 angka: "); for(i = 0; i < 6; ++i) { // Setara dengan scanf("%d", &x[i]); scanf("%d", x+i); // Setara dengan sum += x[i] sum += *(x+i); } printf("Jumlah = %d", sum); return 0; } 

Saat Anda menjalankan program, keluaran akan menjadi:

 Masukkan 6 angka: 2 3 4 4 12 4 Jumlah = 29 

Di sini, kami telah mendeklarasikan array x dengan 6 elemen. Untuk mengakses elemen array, kami telah menggunakan pointer.


Dalam konteks sebagian besar, nama array mereduksi menjadi pointer. Dengan kata sederhana, nama array dikonversi menjadi pointer. Itulah alasan mengapa Anda dapat menggunakan pointer untuk mengakses elemen array. Namun, Anda harus ingat bahwa pointer dan array tidak sama.

Ada beberapa kasus di mana nama array tidak mereduksi menjadi pointer. Untuk mempelajari lebih lanjut, kunjungi: Kapan nama array tidak mereduksi menjadi pointer?


Contoh 2: Array dan Pointer

 #include <stdio.h> int main() { int x[5] = {1, 2, 3, 4, 5}; int* ptr; // ptr ditugaskan alamat elemen ketiga ptr = &x[2]; printf("*ptr = %d \n", *ptr); // 3 printf("*(ptr+1) = %d \n", *(ptr+1)); // 4 printf("*(ptr-1) = %d", *(ptr-1)); // 2 return 0; }

Saat Anda menjalankan program, keluaran akan menjadi:

 *ptr = 3 *(ptr+1) = 4 *(ptr-1) = 2

Dalam contoh ini, &x[2], alamat elemen ketiga, ditugaskan ke pointer ptr. Oleh karena itu, 3 ditampilkan ketika kita mencetak *ptr.

Dan, mencetak *(ptr+1) memberi kita elemen keempat. Demikian pula, mencetak *(ptr-1) memberi kita elemen kedua.


Bahasa C

  1. Big Data dan Komputasi Cloud: Bagaimana Keduanya Bekerja Bersama
  2. Pointer dan Array C++: Menguasai Hubungan Keduanya
  3. Pemrograman C: Meneruskan Alamat dan Pointer ke Fungsi – Panduan Praktis
  4. Menguasai Struct dan Pointer C: Panduan Praktis
  5. Memahami Ketidakseimbangan Tegangan-Arus dalam Motor Listrik: Penyebab dan Pemecahan Masalah
  6. Bagaimana IoT dan Komputasi Edge Salengkapkan
  7. SCADA vs. HMI: Perbedaan Utama dan Peranannya dalam Industri 4.0
  8. Memahami Motor DC vs AC: Perbedaan Utama dan Panduan Pembelian
  9. Penglogaman vs Pengatoman: Perbedaan Utama Dijelaskan
  10. Mesin 2‑Colokan vs 4‑Colokan: Perbedaan Kunci Dijelaskan