C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

sizeof()がC ++の演算子として実装されているのはなぜですか?


sizeofはC++の実際の演算子ではありません。引数のサイズに等しい継続を挿入するのは、単なる特別な構文です。 sizeofは、ランタイムをサポートしていないか、サポートしていません。ポインタを配列にインクリメントするなどの組み込み操作は暗黙的にそれに依存するため、Sizeofをオーバーロードすることはできません。

C標準では、sizeofを演算子として実装する必要があると指定されています。ほとんどのコンパイラでは、sizeofの値は、コンパイル時自体に等しい定数に置き換えられます。

#include <iostream>
using namespace std;
int main() {
   cout << "Size of char : " << sizeof(char) << endl;
   cout << "Size of int : " << sizeof(int) << endl;
   cout << "Size of short int : " << sizeof(short int) << endl;
   cout << "Size of long int : " << sizeof(long int) << endl;
   cout << "Size of float : " << sizeof(float) << endl;
   cout << "Size of double : " << sizeof(double) << endl;
   cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
   return 0;
}
出力 これにより出力が得られます-

Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4

  1. C++の単項演算子

    単項演算子は、単一のオペランドに作用して新しい値を生成する演算子です。単項演算子は次のとおりです。 演算子 説明 間接演算子(*) ポインタ変数を操作し、ポインタアドレスの値と同等のl値を返します。これは、ポインタの「逆参照」と呼ばれます。 演算子のアドレス(&) 単項アドレス演算子(&)は、そのオペランドのアドレスを取ります。アドレスオブ演算子のオペランドは、関数指定子またはビットフィールドではなくレジスタストレージクラス指定子で宣言されていないオブジェクトを指定するl値のいずれかです。 単項プラス演算子(+) 単項プラス演算子(+)の結果は

  2. C#でのsizeofOperatorの使用は何ですか?

    sizeof()データ型は、データ型のサイズを返します。 intデータ型のサイズを見つける必要があるとしましょう- sizeof(int); 二重データ型の場合- sizeof(double); さまざまなデータ型のサイズを見つけるための完全な例を見てみましょう- 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {          Console.Wr