Bagikan melalui


sizeof Operator

Menghasilkan ukuran operannya sehubungan dengan ukuran jenis char.

Catatan

Untuk informasi tentang sizeof ... operator, lihat Elipsis dan templat variadik.

Sintaks

sizeof unary-expression
sizeof ( type-name )

Keterangan

Hasil dari sizeof operator berjenis size_t, jenis integral yang ditentukan dalam file <include stddef.h>. Operator ini memungkinkan Anda menghindari penentuan ukuran data yang bergantung pada komputer dalam program Anda.

Operand untuk sizeof bisa menjadi salah satu dari berikut ini:

  • Nama jenis. Untuk digunakan sizeof dengan nama jenis, nama harus diapit dalam tanda kurung.

  • Ekspresi. Saat digunakan dengan ekspresi, sizeof dapat ditentukan dengan atau tanpa tanda kurung. Ekspresi tidak dievaluasi.

sizeof Ketika operator diterapkan ke objek jenis char, operator menghasilkan 1. sizeof Ketika operator diterapkan ke array, operator menghasilkan jumlah total byte dalam array tersebut, bukan ukuran penunjuk yang diwakili oleh pengidentifikasi array. Untuk mendapatkan ukuran pointer yang diwakili oleh pengidentifikasi array, teruskan sebagai parameter ke fungsi yang menggunakan sizeof. Contohnya:

Contoh

#include <iostream>
using namespace std;

size_t getPtrSize( char *ptr )
{
   return sizeof( ptr );
}

int main()
{
   char szHello[] = "Hello, world!";

   cout  << "The size of a char is: "
         << sizeof( char )
         << "\nThe length of " << szHello << " is: "
         << sizeof szHello
         << "\nThe size of the pointer is "
         << getPtrSize( szHello ) << endl;
}

Output sampel

The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4

sizeof Ketika operator diterapkan ke class, , structatau union jenis, hasilnya adalah jumlah byte dalam objek jenis tersebut, ditambah padding apa pun yang ditambahkan untuk meratakan anggota pada batas kata. Hasilnya tidak selalu sesuai dengan ukuran yang dihitung dengan menambahkan persyaratan penyimpanan masing-masing anggota. Opsi kompilator /Zp dan pragma paket memengaruhi batas keselarasan untuk anggota.

Operator sizeof tidak pernah menghasilkan 0, bahkan untuk kelas kosong.

Operator sizeof tidak dapat digunakan dengan operand berikut:

  • Functions. (Namun, sizeof dapat diterapkan ke penunjuk ke fungsi.)

  • Bidang bit.

  • Kelas yang tidak ditentukan.

  • Jenis void.

  • Array yang dialokasikan secara dinamis.

  • Array eksternal.

  • Jenis yang tidak lengkap.

  • Nama yang dikurung dari jenis yang tidak lengkap.

sizeof Ketika operator diterapkan ke referensi, hasilnya sama seperti jika sizeof telah diterapkan ke objek itu sendiri.

Jika array yang tidak berukuran adalah elemen terakhir struktur, operator sizeof menghasilkan ukuran struktur tanpa array.

Operator sizeof sering digunakan untuk menghitung jumlah elemen dalam array menggunakan ekspresi formulir:

sizeof array / sizeof array[0]

Lihat juga

Ekspresi dengan Operator Tunggal
Kata kunci