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

Cの構造体と共用体の違い


構造

構造はユーザー定義のデータ型です。さまざまなタイプのデータを1つのタイプに結合するために使用されます。複数のメンバーと構造変数を持つことができます。キーワード「struct」は、C言語で構造体を定義するために使用されます。構造体のメンバーには、dot(。)演算子を使用してアクセスできます。

これがC言語の構造体の構文です

struct structure_name {
   member definition;
} structure_variables;

ここで

  • structure_name −構造に付けられた任意の名前。

  • メンバーの定義 −メンバー変数のセット。

  • structure_variable −これは構造の対象です。

これがC言語の構造体の例です

#include <stdio.h>
#include <string.h>

struct Data {
   int i;
   long int f;
} data, data1;

int main( ) {
   data.i = 28;
   printf("The value of i : %d\n", (data.i));
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

出力

これが出力です

The value of i : 28
Memory size occupied by data : 16 16

ユニオン

Unionは、ユーザー定義のデータ型でもあります。ユニオンのすべてのメンバーは、同じメモリ位置を共有します。組合の規模は、組合の最大メンバーの規模によって決定されます。 2人以上のメンバーに同じメモリ位置を使用する場合は、ユニオンが最適です。

ユニオンは構造に似ています。共用体変数は、構造体変数と同じ方法で作成されます。キーワード「union」は、C言語で共用体を定義するために使用されます。

これがC言語のユニオンの構文です

union union_name {
   member definition;
} union_variables;

ここで

  • union_name −組合に付けられた任意の名前。

  • メンバーの定義 −メンバー変数のセット。

  • union_variable −これはユニオンの対象です。

これがC言語のユニオンの例です

#include <stdio.h>
#include <string.h>

union Data {
   int i;
   float f;
} data, data1;

int main( ) {
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

出力

これが出力です

Memory size occupied by data : 4 4

  1. C#でのクラスと構造の違い

    クラスと構造を区別するには、最初に、データの保持と定義のコンテキストでは、構造とクラスの両方が同等であるように見えることを理解する必要があります。これらは両方とも、データメンバーにいくつかのデフォルト値を定義および保持することができます。しかし、この文脈を超えてそれらを考慮すると、クラスは構造と比較して機能性とともにより多くの柔軟性を提供します。 クラスと構造の重要な違いは次のとおりです。 Sr。いいえ。 キー クラス 構造 1 データ型 クラスで定義されたデータは参照としてメモリに保存され、アクセスするための特定のアドレスを持っているため、クラスは参照型であると言えます。

  2. C#でのHashTableとDictionaryの違い

    HashTableとDictionaryはどちらも、データを格納するために使用されるデータ構造のタイプです。これらのデータ構造は両方とも、保存されたデータをキーと値のペアで保持します。 これらの主要な機能の違いに基づいて、HashTableとDictionaryを次のように区別できます- Sr。いいえ。 キー HashTable 辞書 1 定義 HashTableは、キーと値のペアでデータを格納するために使用される非汎用タイプのコレクションであり、 System.Collectionsで定義されます。 名前空間。 一方、Dictionaryは、 System.Colle