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

C#の単項演算子とは?一覧とsizeof演算子の使い方を解説

C#の単項演算子とは

単項演算子(unary operator)とは、1つのオペランドだけを受け取って処理を行う演算子のことです。C#で利用できる主な単項演算子は以下のとおりです。

+ - ! ~ ++ -- (type) * & sizeof

それぞれの演算子が持つ役割は次のようになっています。

  • + … 単項プラス(値をそのまま返す)
  • - … 単項マイナス(符号を反転する)
  • ! … 論理否定(true と false を入れ替える)
  • ~ … ビットごとの補数(各ビットを反転する)
  • ++ … インクリメント(値を1増やす)
  • -- … デクリメント(値を1減らす)
  • (type) … 明示的な型変換(キャスト)
  • * … ポインタの逆参照
  • & … 変数のアドレスを取得
  • sizeof … データ型のサイズ(バイト数)を取得

sizeof演算子の基本

ここでは、中でもよく使われる sizeof 演算子について詳しく見ていきましょう。sizeof は、指定したデータ型がメモリ上で何バイト占めるのかを返す演算子です。

たとえば、int型のサイズを調べたい場合は次のように記述します。

sizeof(int)

double型の場合は以下のとおりです。

sizeof(double)

なお、intdouble のような組み込み型に対して sizeof を使う場合は unsafe コンテキストは不要ですが、独自に定義した構造体などに対して使う場合は unsafe コンテキストが必要になる点に注意してください。

サンプルコード

それでは、さまざまなデータ型のサイズを実際に求めてみましょう。

using System;

namespace Demo {

    class Program {

        static void Main(string[] args) {

            Console.WriteLine("int型のサイズは {0} バイトです", sizeof(int));
            Console.WriteLine("char型のサイズは {0} バイトです", sizeof(char));
            Console.WriteLine("short型のサイズは {0} バイトです", sizeof(short));
            Console.WriteLine("long型のサイズは {0} バイトです", sizeof(long));
            Console.WriteLine("double型のサイズは {0} バイトです", sizeof(double));

            Console.ReadLine();
        }
    }
}

実行結果

int型のサイズは 4 バイトです
char型のサイズは 2 バイトです
short型のサイズは 2 バイトです
long型のサイズは 8 バイトです
double型のサイズは 8 バイトです

このように、sizeof を使えば各データ型が必要とするメモリサイズを簡単に確認できます。実行結果からも分かるように、int型は4バイト、long型とdouble型は8バイト、char型とshort型は2バイトとなっています。メモリ効率を意識したプログラム設計を行う際に、ぜひ活用してみてください。

  1. C#の関係演算子とは?種類と使い方を実例付きで解説

    C#で2つの値を比較する際に使用するのが関係演算子です。関係演算子を使うことで、数値や変数同士の等価性・大小関係を判定し、その結果に応じてプログラムの処理を分岐させることができます。 C#の主な関係演算子一覧 演算子説明==2つのオペランドの値が等しいかどうかを調べます。等しい場合、条件式はtrueになります。!=2つのオペランドの値が等しくないかどうかを調べます。等しくない場合、条件式はtrueになります。>左オペランドの値が右オペランドの値より大きいかどうかを調べます。大きい場合、条件式はtrueになります。<左オペランドの値が右オペランドの値より小さいかどうかを調べます。小さ

  2. C#の論理演算子とは?&&・||・! の使い方をサンプル付きで解説

    論理演算子は、真偽値(bool型:true / false)に対して使用する演算子です。C#では、主に以下の3つの論理演算子が用意されています。演算子説明&&論理AND(かつ)。両方のオペランドが true の場合にのみ、条件式全体が true になります。||論理OR(または)。2つのオペランドのうち、どちらか一方でも true であれば、条件式全体が true になります。!論理NOT(否定)。オペランドの論理状態を反転させます。条件が true なら false に、false なら true になります。それでは、C#で論理演算子を実際にどう使うのか、具体例を見ていきま