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 : 1616

上記のプログラムでは、構造体データは構造体のオブジェクトで作成されます。構造体で宣言された変数は、構造体のオブジェクトを使用してmain()で呼び出されます。

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));
}

  1. データ構造のセグメントツリー

    このセクションでは、セグメントツリーとは何かを確認します。それについて説明する前に、1つの問題を見てみましょう。 配列arr[0、…、n-1]があるとすると、次の操作を実行できます- インデックスlからrまでの要素の合計を求めます。ここで0≤l≤r≤n-1 配列の指定された要素の値を新しい値xに変更します。 arr [i]=xを実行する必要があります。 0からn–1の範囲のi。 この問題は、セグメントツリーを使用して解決できます。セグメントツリーは、O(log n)時間で合計とクエリを取得するのに役立ちます。では、これを表現する方法を見てみましょう- リーフノードは、

  2. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ