Pointer
1. Tujuan Praktikum
3. Teori Dasar
tipe_data nama_variabel;
Contoh:
pint = &vint;
Lalu untuk mengakses nilai dari variabel pada pointer tersebut, cukup
dengan memanggil pointer tersebut seperti pada contoh berikut
Di mana *pint adalah pointer yang menunjuk pada alamat yang berisi
nilai dari vint sebelumnya
Pointer menunjuk pointer
Keterangan:
ptr1 = &var_x;
ptr2 = &ptr1;
Pointer void
Pointer konstan
ptgl = tgl_lahir;
ptgl = &variabel;
Bila variabel bukan berupa array. Hal ini disebabkan nama array
sebenarnya sudah menyatakan alamat. Oleh karena itu, tanda & tidak
diperlukan.
*x = 95;
ubah_nilai(&pinokio);
yang menyatakan bahwa nilai balik fungsi berupa pointer yang menunjuk
ke:
String “Kode bulan salah” ( bulan[0] ), jika argument fungsi
bernilai kurang dari 1 atau lebih besar daripada 12.
bulan[n], jika argumen n bernilai antara 1 sampai dengan 12
int main() {
int a = 5;
float b = 7.5;
double c = 17.77;
printf("Isi variabel:\n");
printf("a = %d\n", a);
printf("b = %f\n", b);
printf("c = %lf\n", c);
printf("\nAlamat variabel:\n");
printf("a = %p\n", &a);
printf("b = %p\n", &b);
printf("c = %p\n", &c);
return 0;
}
Alamat variabel:
a = 000000000061FE4C
b = 000000000061FE48
c = 000000000061FE40
int main() {
int vint = 55;
int *pint;
pint = &vint;
return 0;
}
Hasil Eksekusi Program
Alamat vint = 000000000061FE44
pint = 000000000061FE44
Nilai yang ditunjuk oleh pint = 55
int main() {
int var_x = 273;
int *ptr1; // Pointer menunjuk variabel bukan pointer
int **ptr2; // Pointer menunjuk ke pointer
// Penugasan alamat
ptr1 = &var_x; // ptr1 menunjuk var_x
ptr2 = &ptr1; // ptr2 menunjuk ptr1
return 0;
}
Pointer void
Source Code
#include <stdio.h>
int main() {
void *ptr; // Pointer tak bertipe
return 0;
}
int main() {
char bahasa[10] = "C";
return 0;
}
int main() {
int tgl_lahir[] = { 24, 6, 1965 };
int *ptgl;
ptgl = tgl_lahir;
return 0;
}
int main() {
int pinokio = 80;
printf("Nilai pinokio semula = %d\n", pinokio);
ubah_nilai(&pinokio);
printf("Nilai pinokio sekarang = %d\n", pinokio);
return 0;
}
int main() {
int kode;
printf("%s\n", nama_bulan(kode));
return 0;
}
char *nama_bulan(int n) {
static char bulan[13][17] = {
"Kode bulan salah", "Januari", "Februari", "Maret",
"April", "Mei",
"Juni", "Juli", "Agustus", "September", "Oktober",
"November", "Desember"
};
return ((n < 1 || n > 12) ? bulan[0] : bulan[n]);
}