Pointer Bahasa C
Apakah pointer itu? Pointer adalah suatu variabel yang meunujuk ke alamat memory variabel yang lain. Pointer berisi suatu alamat. Pointer dideklarasikan menggunakan bintang (*) didepan variabel yang dideklarasikn pada tipe data tertentu. Sedangkan untuk mendapat alamat dari variabel pointer , digunakan tanda &
Mempelajari penggunaan variabel pointer yang dipadukan dengan variabel integer , array, dan string serta penggunaan pointer dalam suatu fungsi, baik sebagai penunjuk fungsi aau sebagai argument fungsi. Dipelajari juga pointer yang merujuk pada pointer lainnya.
Dan berikut ini adalah contohnya
- Untuk mengakses isi suatu variabel melalui pointer
#include <stdio.h>
void main()
{
int y, x = 2002;
int *px;
px = &x;
y = *px;
printf(“Alamat x = %p\n”, &x);
printf(“isi px = %p\n”, px);
printf(“isi x = %d\n”, x);
printf(“nilai px = %d\n”, *px);
printf(“nilai y = %d\n”, y);
}
- Mengamati persamaaaan penggunaan variael index pda array dan variabel index pada pointer, untuk menunjuk suatu nilai data didalam variabel array.
#include <stdio.h>
void main()
{
int nilai[10] = {86,75,98,66,56,76,80,95,70,60};
int index, *ip;
printf(“Mencetak menggunakan array\n”);
printf(“daftar nilai siswa \n\n”);
for(index =0;index<10;index++)
printf(“%3d”, nilai[index]);
puts(“\n”);
printf(“Mencetak menggunakan pointer dan index\n”);
printf(“Daftar nilai siswa\n\n”);
for (index = 0; index<10; index++);
printf(“%3d”, *(nilai+index));
puts(“\n”);
printf(“Mencetak menggunakan pointer\n”);
printf(“Daftar nilai siswa \n\n”);
ip=&nilai;
for(index=0; index <10; index++)
printf(“%3d”, *ip++);
getch();
}
- pointer menunjuk ke pointer lain.
#include <stdio.h>
void main()
{int a, *b, **c;
a= 1975;
b= &a;
c=&b;
printf(“Nilai a = %d atau %d atau %d\n”, a, *b, **c);
printf(“b= %p = alamat a di memori\n”,b);
printf(“c = %p = alamat b di memori\n”, c);
printf(“alamat c di memori = %p\n”, &c);
}
- Fungi dengan argumen berupa pointer
void naikkan_nilai(int *x, int *y);
main()
{
int a = 3, b = 7;
printf(“SEMULA : a = %d b = %d\n”, a, b);
naikkan_nilai(&a, &b);
printf(“SEKARANG : a = %d b = %d\n”, a, b);
getch();
}
void naikkan_nilai(int *x, int *y)
{
*x = *x + 2;
*y = *y + 3;
}
- Suatu fungsi dapat mempunyai nilai balik bertipe pointer, sehingga dapat digunakan untuk mengembalikan nilai yang panjang seperti halnya nilai suatu string.
#include <stdio.h>
char *nama_bulan(int n)
{
static char *bulan[] = {
“Kode bulan salah”,
“Januari”,”Februari”,”Maret”,”April”,”Mei”,”Juni”,
“Juli”,”Agustus”,”September”,”Oktober”,”November”,
“Desember”
};
return ((n<1||n>12) ? bulan[0] : bulan[n]);
}
void main()
{
int bl;
printf(“Masukkan kode Bulan [1..12] : “);
scanf(“%d”, &bl);
printf(“Bulan ke-%d adalah %s\n”, bl, nama_bulan(bl));
getch();
}
- Penggunaan fungsi *strlwr(str) yang digunakan utnuk mengubah dari string huruf BESAR menjadi huruf kecil, dan fungsi strupr() yang digunakan untuk sebaiknya.
.
#include <stdlib.h>
#include<string.h>
void main()
{
char str1[80], str2[80], *ptrx;
strcpy(str1,”INI ADALAH HURUF BESAR SEMUA!!!”);
strcpy(str2,”ini adalah huruf kecil semua!!!”);
ptrx = NULL;
cputs(“Isi str1 = “); puts(str1);
cputs(“Isi str2 = “); puts(str2);
cputs(“Isi ptrx = “); puts(ptrx);
ptrx = (char *) calloc(80, sizeof(char));
ptrx = strlwr(str1);
puts(“\nSeletelah ‘str1’ diproses dengan strlwr()\n”);
cputs(“Isi str1 = “); puts(str1);
cputs(“Isi ptrx = “); puts(ptrx);
ptrx = strupr(str2);
puts(“\nSeletelah ‘str2’ diproses dengan strupr()\n”);
cputs(“Isi str2 = “); puts(str2);
cputs(“Isi ptrx = “); puts(ptrx);
getch();
}
Sekian yang dapat saya bahas, dan terimakasih.
Recent Comments