C++ で sizeof 演算子を使用した結果

王林
リリース: 2023-09-10 08:41:02
転載
1321 人が閲覧しました

C++ で sizeof 演算子を使用した結果

Sizeof 演算子は、C 言語で最も一般的に使用される演算子の 1 つで、渡すデータ構造またはデータ型のサイズを計算するために使用されます。 sizeof 演算子は符号なし整数型を返し、プリミティブ データ型と複合データ型に適用できます。データ型に対して sizeof 演算子を直接使用すると、それが占有するメモリを知ることができます -

Example

#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;
}
ログイン後にコピー

Output

4
1
4
8
8
ログイン後にコピー

この関数を使用することで、データ型を知ることができます変数が占めるスペース。 16 ビット コンパイラは 32 ビット コンパイラとは異なる int 値を与えるため、出力もコンパイラに依存します。

この操作は式にも適用できます -

#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 演算子の必要性

< p>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 です。

この演算子の 2 番目に重要な使用例は、動的メモリを割り当てることです。そのため、スペースを割り当てるときに sizeof 演算子を使用します。

例< /h2>
#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 などの他の言語で書くことができます。この記事がお役に立てば幸いです。

以上がC++ で sizeof 演算子を使用した結果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート