Edisi pembelajaran bahasa Indonesia. Kode dan keluarannya tetap seperti aslinya.
Array pointer dalam C
Bedakan array alamat dari pointer ke array dan akses objek dengan benar.

int *p[3] mendeklarasikan array berisi tiga pointer ke int, sedangkan int (*p)[3] mendeklarasikan pointer ke array berisi tiga bilangan bulat. Tanda kurung mengubah pengelompokan deklarasi sehingga artinya berbeda.
Sebelum dereferensi, setiap elemen harus berisi alamat yang valid. Objek dapat berada di lokasi berbeda, tetapi harus tetap hidup selama pointer digunakan. Untuk mencetak alamat dengan %p, konversikan argumen menjadi void *.
Array pointer ke string bukan matriks karakter persegi panjang. Gunakan const char * untuk pointer ke literal dan jangan ubah literalnya. Gambarkan alamat dan objek untuk memeriksa pemahaman.
Kode C
#include <stdio.h>
int main(void)
{
int first = 10;
int second = 20;
int third = 30;
int *items[] = {&first, &second, &third};
size_t count = sizeof items / sizeof items[0];
*items[1] = 25;
for (size_t i = 0; i < count; ++i) {
printf("items[%zu] points to %d\n", i, *items[i]);
}
printf("second is now %d\n", second);
return 0;
}Buka di kompilerPertanyaan umum
Mengapa kode dan keluarannya tetap dalam bahasa Inggris?
Kata kunci, pengenal, dan teks yang diperiksa tes dipertahankan agar program tidak berubah. Penjelasan dan kontrol telah diterjemahkan.