Pointer

Post on 22-Dec-2014

1.074 views 0 download

description

Presentasi Algoritma dan Pemrograman dengan Bahasa C (Pointer). Dibuat oleh Achmad Solichin (http://achmatim.net)

Transcript of Pointer

POINTERPOINTEROleh Achmad Solichin

Assisten Labkom FTI Universitas Budi Luhur

POINTER ADALAHPOINTER ADALAHsuatu variabel yang berisi suatu variabel yang berisi alamat memori dari suatu alamat memori dari suatu variabel lain. Alamat ini variabel lain. Alamat ini merupakan lokasi dari merupakan lokasi dari obyek lain (biasanya obyek lain (biasanya

variabel lain) di dalam variabel lain) di dalam memori memori

OPERATOR dalam Pointer :OPERATOR dalam Pointer :

• Operator *– Operator UNARY yang

menghasilkan nilai variabel dari suatu variabel alamat

• Operator &– Operator UNARY yang

menghasilkan alamat dari suatu variabel

DEKLARASI POINTERDEKLARASI POINTER

• type *nama_pointer;

• Contoh :– int *px;– char *pstring;– float *pecah;– int *dodol;

POINTERPOINTER

POINTERPOINTER

Jalan Ciledug Raya No 95 Jakarta

RUMAHALAMAT

VARIABELBIASA

VARIABELPOINTER

A *pA

POINTERPOINTER

int a;int *pa;a = 10;pa = &a

a

pa

10

FFF4

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ int x, y;{ int x, y; /* x dan y bertipe int *//* x dan y bertipe int */int *px;int *px; /* px pointer yang menunjuk /* px pointer yang menunjuk objek */objek */clrscr();clrscr();x = 87;x = 87;px = &x;px = &x; /* px berisi alamat dari x *//* px berisi alamat dari x */y = *px;y = *px; /* y berisi nilai yang ditunjuk px *//* y berisi nilai yang ditunjuk px */printf(“Alamat x = %p\n”, &x);printf(“Alamat x = %p\n”, &x);printf(“Isi px = %p\n”, px);printf(“Isi px = %p\n”, px);printf(“Isi x = %i\n”, x);printf(“Isi x = %i\n”, x);printf(“Nilai yang ditunjuk oleh px = %i\n”, *px);printf(“Nilai yang ditunjuk oleh px = %i\n”, *px);printf(“Nilai y = %i\n”, y);printf(“Nilai y = %i\n”, y);getch();getch();}}

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ float *x1, *x2, y;{ float *x1, *x2, y;clrscr();clrscr();y = 13.45;y = 13.45;x1 = &y;x1 = &y; /* Alamat dari y disalin ke variabel /* Alamat dari y disalin ke variabel x1 */x1 */x2 = x1;x2 = x1; /* Isi variabel x1 disalin ke /* Isi variabel x1 disalin ke variabel x2 */variabel x2 */printf(“Nilai variabel y = %.2f ada di alamat %p\n”, printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x1);y, x1);printf(“Nilai variabel y = %.2f ada di alamat %p\n”, printf(“Nilai variabel y = %.2f ada di alamat %p\n”, y, x2);y, x2);getch();getch();}}

#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main(){ int nilai[3], *penunjuk;{ int nilai[3], *penunjuk;clrscr();clrscr();nilai[0] = 125;nilai[0] = 125;nilai[1] = 345;nilai[1] = 345;nilai[2] = 750;nilai[2] = 750;penunjuk = &nilai[0];penunjuk = &nilai[0];printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *penunjuk, penunjuk);*penunjuk, penunjuk);printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+1), penunjuk+1);*(penunjuk+1), penunjuk+1);printf(“Nilai %i ada di alamat memori %p\n”, printf(“Nilai %i ada di alamat memori %p\n”, *(penunjuk+2), penunjuk+2);*(penunjuk+2), penunjuk+2);getch();getch();}}