Senin, 12 Mei 2014

C menyediakan unary operator sizeof untuk menentukan ukuran dalam bit sebuah data array (atau tipe data lainnya) ketika program dijalankan. Ketika di aplikasikan ke nama dari sebuah array seperti pada fig 7.16, operator sizeof mengembalikan jumlah byte ke dalam array sebagai integer. Variabel dengan tipe data float biasanya disimpan di memori 4 byte dan array di definisikan mempunyai 20 elemen.

/* Fig. 7.16: fig07_16.c
Applying sizeof to an array name returns
the number of bytes in the array. */
#include <stdio.h>
size_t getSize(float *ptr); /* prototype */
int main( void )
{
   float array[ 20 ]; /* create array */
   printf( "The number of bytes in the array is %d"
   "\nThe number of bytes returned by getSize is %d\n",
   sizeof( array ), getSize( array ) );
   return 0; /* indicates successful termination */
} /* end main */

/* return size of ptr */
size_t getSize(float *ptr)
{
   return sizeof( ptr );
} /* end function getSize */

Output:  

Jumlah dari elemen array juga bisa ditentukan dengan sizeof. Sebagai contoh:

double real[ 22 ];
Variabel dengan tipe data double secara normal disimpan di memori 8 bit. Jadi array real totalnya akan disimpan sebanyak 176 bit. Untuk menentukan jumlah dari elemen array, bisa menggunakan ekspresi : sizeof( real ) / sizeof( real[ 0 ] )

Fungsi getSize mengembalikan tipe size_t. Tipe size_t didefinisika di C sebagai tipe integral dari nilai pengembalian yang dilakukan oleh sizeof. Tipe size_t didefinisikan pada header <stddef.h> (yang di dalamnya ada beberapa header, antara lain <stdio.h>).

0 komentar:

Posting Komentar