ขนาดของชนิดข้อมูลสามารถรับได้โดยใช้ sizeof() โปรแกรมที่สาธิตการพิมพ์พารามิเตอร์อาร์เรย์ในฟังก์ชันในภาษา C++ มีดังต่อไปนี้
ตัวอย่าง
#include <iostream> using namespace std; int func(int a[]) { cout << "Size: " << sizeof(a); return 0; } int main() { int array[5]; func(array); cout << "\nSize: " << sizeof(array); return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้
Size: 8 Size: 20
ตอนนี้เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ในฟังก์ชัน func() ขนาดของ a จะแสดงเป็น 8 เนื่องจากอาร์เรย์ใน main() ถูกส่งผ่านเป็นตัวชี้และชี้ไปที่จุดเริ่มต้นของอาร์เรย์ ดังนั้น sizeof(a) จะแสดงขนาดของตัวชี้ซึ่งเท่ากับ 8 ข้อมูลโค้ดที่แสดงเป็นดังนี้
int func(int a[]) { cout << "Size: " << sizeof(a); return 0; }
ในฟังก์ชัน main() ขนาดของอาร์เรย์จะแสดงเป็น 20 เนื่องจากขนาดของ int คือ 4 และอาร์เรย์มีองค์ประกอบ int 5 รายการ ข้อมูลโค้ดที่แสดงเป็นดังนี้
int main() { int array[5]; func(array); cout << "\nSize: " << sizeof(array); return 0; }