C++ 中 sizeof 運算子的結果


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 位編譯器對 int 的值與 32 位編譯器不同。

我們還可以將此運算應用於表示式:

示例

#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 的先前值為 4,即使在執行字首運算後,它也保持不變。這完全是因為 sizeof 運算子的原因,因為此運算子是在編譯時使用的,因此它不會更改我們應用的表示式的值。

sizeof 運算子的必要性

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

這裡首先,我們計算整個陣列的大小或它佔用的記憶體。然後,我們用資料型別的 sizeof 除以該數字;在此程式中,它是 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 等)中編寫相同的程式。希望本文對您有所幫助。

更新於:2021年11月29日

222 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.