Saturday, December 26, 2009

Struktur Data - Pointer

Berikut ini contoh program pointer :


#include <conio.h>
#include <stdio.h>


void main() {
  clrscr();
  char *alm_x; // Deklarasi pointer
  char x;
  x = 'a';
  alm_x = &x; // menyimpan alamat x pada variabel pointer alm_x
  printf("x = '%c', disimpan di alamat %p atau %x dalam hexa\n\n", x , alm_x, alm_x);



  //Sebuah alamat dapat ditunjuk oleh lebih dari satu pointer
  int a = 25;
  int *p, *q;
  p = &a;
  q = p;
  printf("Nilai a = %d , ditunjuk oleh p adalah di alamat %p \n", a, p);
  printf("Nilai a = %d , ditunjuk oleh q adalah di alamat %p \n\n", a, q);



  //Mengisi variabel dengan nilai yang ditunjuk oleh sebuah pointer
  int c;
  c = *p;
  printf("Nilai c = %d, diperoleh dari nilai yg ditunjuk oleh pointer p di alamat %p\n\n", c, p);

  //Mengoperasikan isi variabel dengan menyebut alamatnya dengan pointer
  int b = 50;
  a = 30; 
  p = &a; q = &b;
  printf("Nilai yang ditunjuk p = %d di alamat %p\n", *p , q);
  printf("Nilai yang ditunjuk q = %d di alamat %p\n", *q , q);
  *q = *p;
  printf("Nilai yang ditunjuk p = %d di alamat %p\n", *p , q);
  printf("Nilai yang ditunjuk q = %d di alamat %p\n\n", *q , q);

  //Mengisi dan mengganti variabel yang ditunjuk oleh pointer
  int d, *po;
  po = &d;
  *po = 40;
  printf("Nilai d = %d \n\n", d, po);

  //operasi pointer
  char s[] = "struktur data";
  char *r;

  r = s; //bisa juga dengan cara r = &s[0];

  for (int i = 0; i < 13; i++) {
  printf("%c", *r);
  r++;
  }
  printf("\n");


  r--;
  for (int i = 0; i < 13; i++) {
printf("%c", *r);
  r--;
  }
  printf("\n");
}

No comments:

Post a Comment