Pointer Dalam Bahasa C

Larik dan Pointer

Dalam pemrograman C, definisi larik dituliskan: type_name array_name [number_of_array], misal larik A bertipe integer dengan 10 anggota didefinisikan dengan int A[10].Apa maksudnya? Dengan penulisan itu, maka diperintahkan kepada kompiler untuk menyediakan alamat memori sebesar 10 * sizeof(int). Bila ukuran int adalah 4 byte, maka compiler akan mengalokasikan sebesar 10 * 4 byte = 40 byte memori untuk A. Maka penggambarannya dapat diilustrasikan sebagai berikut.

Array Alamat Memori
A[0] 0xDDDD0004
A[1] 0xDDDD0008
A[2] 0xDDDD000C
A[7] 0xDDDD0020
A[8] 0xDDDD0024
A[9] 0xDDDD0028

Seperti pada pembahasan pointer dengan variabel, pointer pada larik sesungguhnya juga diperintahkan pointer agar menunjuk ke alamat yang telah dialokasikan oleh larik tersebut. Pada contoh diatas, bila didefinisikan suatu pointer

int *P:

kemudian kita tunjuk ke alamat larik A

P = &A[0];

maka alamat P akan menunjuk ke alamat 0xDDDD0004

Program berikut ini menampilkan alamat memory dan mengakses larik menggunakan pointer.

#include <stdio.h>

main(){
    int my_array[6] = {1,23,17,4,-5,100};
    int *p_array;

     // Dapat juga ditulis  p_array = my_array;
    p_array = &my_array[0];

    printf("Alamat dari p_array=%d\n",&p_array);
    printf("Isi dari isi p_array=%dn\n",*p_array);
    p_array++;
    printf("Isi dari p_array=%d\n",p_array);
    printf("Isi dari isi p_array=%d\n",*p_array);
}



Program berikut ini menampilkan larik dengan menggunakan pointer.

#include <stdio.h>

main(){

    int *pArray, Array[10],i;
    for(i=0;i<10;i++){
        Array[i] = i+10; //pengisian array
    }
    // tunjuk pArray ke alamat awal array
    pArray = &Array[0]; // bisa dituliskan pArray=Array
    for(i=0;i<10;i++){
        printf("Alamat pointer= %d. Isi dari alamat %d = %d\n",&pArray,pArray,*pArray++); //cetak pArray
    }
}

3 Comments on Pointer Dalam Bahasa C

  1. Ma’af … saya samasekali belum paham apa itu program, bagaimana cara kerja program.

    Apa saya boleh minta penggambaran sebuah program dalam hal yang mudah di pahami..??

1 Trackbacks & Pingbacks

  1. Larik (Array) Multi Dimensi | Onestring Lab

Leave a Reply

Your email address will not be published.


*


Block AdBlock - Powered by Admiral