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
, , struct
atau 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk