Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลลัพธ์ของตัวดำเนินการ sizeof โดยใช้ C++


ตัวดำเนินการ Sizeof เป็นหนึ่งในตัวดำเนินการที่ใช้มากที่สุดในภาษา C ที่ใช้ในการคำนวณขนาดของโครงสร้างข้อมูลหรือประเภทข้อมูลที่เราส่งผ่าน ตัวดำเนินการ sizeof ส่งคืนชนิดจำนวนเต็มที่ไม่ได้ลงนาม และตัวดำเนินการนี้สามารถใช้กับชนิดข้อมูลพื้นฐานและแบบผสมได้ เราสามารถใช้ตัวดำเนินการ sizeof ได้โดยตรงกับประเภทข้อมูลและรู้ว่าหน่วยความจำที่ใช้ไปนั้นเป็นอย่างไร -

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

int main() {
   cout << sizeof(int) << "\n";
   cout << sizeof(char) << "\n";
   cout << sizeof(float) << "\n";
   cout << sizeof(long) << "\n";
   return 0;
}

ผลลัพธ์

4
1
4
8
8

โดยใช้ฟังก์ชันนี้ เราสามารถทราบพื้นที่ที่ตัวแปรของชนิดข้อมูลนี้ใช้ ผลลัพธ์ยังขึ้นอยู่กับคอมไพเลอร์ด้วย เนื่องจากคอมไพเลอร์ 16_bit จะให้ค่า int ที่แตกต่างจากคอมไพเลอร์ 32_bit

เรายังใช้การดำเนินการนี้กับนิพจน์ได้อีกด้วย −

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

int main() {
   cout << sizeof(int) << "\n";
   cout << sizeof(char) << "\n";
   cout << sizeof(float) << "\n";
   cout << sizeof(double) << "\n";
   cout << sizeof(long) << "\n";
   return 0;
}

ผลลัพธ์

4
4

อย่างที่คุณเห็น ค่าก่อนหน้าของ x คือสี่ และแม้หลังจากการดำเนินการนำหน้า ค่าก็ยังคงเหมือนเดิม ทั้งหมดเป็นเพราะขนาดของโอเปอเรเตอร์ เนื่องจากโอเปอเรเตอร์นี้ถูกใช้ระหว่างเวลาคอมไพล์ จึงไม่เปลี่ยนค่าของนิพจน์ที่เราใช้

ความจำเป็นของขนาดตัวดำเนินการ

มีการใช้ตัวดำเนินการ sizeof ที่หลากหลาย อย่างไรก็ตาม ส่วนใหญ่จะใช้เพื่อกำหนดขนาดชนิดข้อมูลแบบผสม เช่น อาร์เรย์ โครงสร้าง ยูเนี่ยน ฯลฯ

ตัวอย่าง

#include <bits/stdc++.h>

using namespace std;

int main() {
   int arr[] = {1, 2, 3, 4, 5}; // the given array

   int size = sizeof(arr) / sizeof(int); // calculating the size of array

   cout << size << "\n"; // outputting the size of given array
}

ผลลัพธ์

5

ประการแรก เราคำนวณขนาดของอาร์เรย์ทั้งหมดหรือคำนวณหน่วยความจำที่ใช้ไป จากนั้นเราหารตัวเลขนั้นด้วยขนาดของประเภทข้อมูล ในโปรแกรมนี้เป็น int.

กรณีการใช้งานที่สำคัญที่สุดอันดับสองสำหรับโอเปอเรเตอร์นี้คือการจัดสรรหน่วยความจำแบบไดนามิก ดังนั้นเราจึงใช้ตัวดำเนินการ sizeof เมื่อจัดสรรพื้นที่

ตัวอย่าง

#include <bits/stdc++.h>

using namespace std;

int main() {
   int* ptr = (int*)malloc(10 * sizeof(int)); // here we allot a memory of 40 bytes
   // the sizeof(int) is 4 and we are allocating 10 blocks
   // i.e. 40 bytes
}

บทสรุป

ในบทความนี้ เรากำลังพูดถึงการใช้ตัวดำเนินการ sizeof และวิธีการทำงาน นอกจากนี้เรายังเข้ารหัสกรณีการใช้งานประเภทต่างๆ เพื่อดูผลลัพธ์และอภิปราย เรานำกรณีการใช้งานของโอเปอเรเตอร์นี้ไปใช้ในภาษา C++ เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, Java, Python เป็นต้น เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์