Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
「Structure」の意味や使い方 わかりやすく解説 Weblio辞書
[go: Go Back, main page]

Structureとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 日本語表現辞典 > Structureの意味・解説 

structure

別表記:ストラクチャー

「structure」の意味

「structure」とは、構造構成建築物など意味する英単語である。構造とは、物事成り立っている要素パーツどのように組み合わさっているかを指す。例えば、文章構造は、序論本論結論といったパーツ組み合わさって成り立っている。建築物場合構造建物骨組み設計を指す。

「structure」の発音・読み方

「structure」のIPA表記は/ˈstrʌktʃər/であり、IPAカタカナ読みは「ストラクチャー」である。日本人発音するカタカナ英語では「ストラクチャー」と読む。

「structure」の語源

「structure」の語源は、ラテン語の「structura」である。これは「構築建築構成」といった意味を持つ言葉で、さらに遡るラテン語の動詞「struere」(積み重ねる組み立てる)に由来する

「structure」の類語

「structure」の類語には、frameworkフレームワーク)、constructionコンストラクション)、architectureアーキテクチャー)などがある。frameworkは、構造システム基本的な骨組みを指す。constructionは、建築物構造物建設作成意味するarchitectureは、建築物設計構造を指す言葉であり、コンピュータシステム構造を指す際にも使われる

「structure」に関連する用語・表現

「structure」に関連する用語表現には、structural(ストラクチュラル)、infrastructureインフラストラクチャー)、restructureリストラクチャー)などがある。structuralは、「構造的な」や「構造上の」といった意味を持ち構造関連する事柄を表す。infrastructureは、社会経済基盤となる施設システムを指す。restructureは、組織システム構造再編成することを意味する

「structure」の例文

1. The structure of the building was designed to withstand earthquakes.(その建物の構造は、地震耐えるように設計されている。) 2. The company decided to change its management structure.(その会社経営構造変更することを決定した。) 3. The structure of the sentence is quite complex.(その文の構造は非常に複雑である。) 4. The bridge has a unique steel structure.(そのは独特の鋼構造持っている。) 5. The organizational structure of the company has been simplified.(その会社の組織構造簡素化された。) 6. The structure of the atom consists of a nucleus and electrons.(原子の構造は、電子構成されている。) 7. The structure of the protein is essential for its function.(タンパク質の構造は、その機能にとって不可欠である。) 8. The structure of the database needs to be optimized.(データベース構造最適化される必要がある。) 9. The structure of the argument was difficult to follow.(その議論構造は、理解しにくかった。) 10. The government plans to invest in infrastructure projects.(政府インフラストラクチャー事業投資する計画である。)

ストラクチャー

英語:structure

「ストラクチャー」の意味・「ストラクチャー」とは

「ストラクチャー」とは、物事構成構造意味する英語由来言葉である。主に、組織建築物システムなどの構成要素やそれらの関係性を指す。また、抽象的な概念理論基本的な枠組みを示す場合もある。

「ストラクチャー」の語源

「ストラクチャー」は、ラテン語の「struere」(建てる組み立てる)に由来し、英語の「structure」が語源である。英語では物理的な構造組織的な構成抽象的な概念理論基本的な枠組みなど、幅広い意味で用いられる

「ストラクチャー」に関連する用語・知識

ビジネスにおける「ストラクチャー」とは

ビジネスにおける「ストラクチャー」は、組織の構造役割分担業務プロセスなどを指す。効率的な組織運営業務改善のために、適切なストラクチャーを構築することが求められる

金融における「ストラクチャー」とは

金融における「ストラクチャー」は、金融商品金融取引構造を指す。例えば、複雑な金融商品リスクリターン特性理解するために、そのストラクチャーを分析することが重要である。

建築における「ストラクチャー」とは

建築における「ストラクチャー」は、建築物構造構成要素を指す。建築物安全性耐久性機能性確保するために、適切なストラクチャーが設計される

「ストラクチャー」と「デストラクチャー」の違い

「ストラクチャー」は物事構成構造を指すのに対して、「デストラクチャー」は、物事分解しその構成要素関係性再評価することを意味する。デストラクチャーは、特に哲学文学批評分野用いられることが多い。

「ストラクチャー」を用いた例文

1. このビルのストラクチャーは、地震に強い設計がされている。 2. 企業組織ストラクチャーを変更することで、業務効率向上した。 3. 彼の提案する経済理論のストラクチャーは、独自の視点盛り込まれている。

ストラクチャー【structure】

読み方:すとらくちゃー

《「ストラクチュア」とも》構造機構


ストラクチュア【structure】

読み方:すとらくちゅあ

ストラクチャー


ストラクチャー

【英】:Structure

事業企業)の構築事業企業)の構造のこと。 M&A成功させるには、企業戦略事業再編目的税務財務手続き等検討し最適なストラクチャーの選択不可欠となる。M&Aにおけるストラクチャーの選択肢としては、株式譲渡第三者割当増資事業譲渡合併株式交換株式移転会社分割現物出資などがある。

構造

母集団成員特定の属性あるいは変数による種々のカテゴリーないし階級並べることによって度数分布 1生じるが、これは分布 1省略されることが多い。個別集団ないし各における数値、すなわち絶対度数 2ないし階級度数 2全集団における総数対す比率は、その集団における相対度数 3呼ばれる人口学では構造 4構成 4という用語が年齢、性(男女)、配偶関係職業等の特性分布記述するために互換的に用いられることが多い。構造はより限定された意味で、年齢男女のみによる人口分布記述するために用いられることがある


構造体

(Structure から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/03/13 01:55 UTC 版)

構造体(こうぞうたい、: structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバー(フィールド)に名前が付いている点、またメンバーの型が異なっていてもよい点が配列と異なる。レコードという名前の類似機能として実装されている言語もある。

C/C++C#などでstructとしてサポートされているほか、Visual Basic/VBAのユーザー定義型Type[1]や、PascalAdarecord型も構造体に相当する。

クラスベースオブジェクト指向言語では、抽象データ型としてのクラスが構造体の役割をも内包する。Cの文法を継承した言語ではstructキーワードを含むこともあるが、言語によってその役割や性質は異なる。

  • C++structは、アクセシビリティの初期値がpublicであることを除いて、classと同等の機能を果たす。メンバー変数だけでなくメンバー関数を持つこともでき、派生型を定義することもできる。
  • Javaでは、structキーワードは存在しない。すべてのユーザー定義型は参照型であり、構造体に相当するデータ構造はclassキーワードを使ってクラスとして実現する必要がある。Java 16ではイミュータブルな「レコードクラス」をサポートする[2][3]
  • Kotlinでは、データを保持するためだけのクラスとして、data class構文により「データクラス」を定義することができる[4]。データクラスはミュータブル[注釈 1]だが、通常のクラス同様に参照型であることには変わりなく、変数の代入は参照のみのコピーとなる。そのため、すべてのプロパティをコピーした新たなオブジェクトを生成するには、コンパイラの推論によって暗黙的に自動定義されたcopy()関数を使うなどする。サブクラスを定義することはできない。
  • C#では、構造体の定義にstructキーワードを使用する[5]classキーワードにより定義されるクラス[6]は「参照型」である一方、構造体は軽量なオブジェクト型を定義するための「値型」であり、クラスと比較していくつかの制約がある。
  • VB.NETでは、構造体の定義にStructureキーワードを使用する[7]。姉妹言語であるC#の構造体と類似の機能である。
  • Swiftでは、構造体の定義にstructキーワードを使用する。C#と同様、classキーワードにより定義されるクラスは参照型である一方、構造体は値型である[8][9]。SwiftのクラスはObjective-Cのクラスに対応する概念であり相互運用できるが、構造体は相互運用することができない。

オブジェクト指向言語でないCなどでオブジェクト指向プログラミングを模倣するために構造体を使うこともある。

C言語の例

下記は単純な例示のため、バッファオーバーフローや整数オーバーフローなどは考慮していないことに注意されたい。

#include <stdio.h>

/* PersonalDataを構造体として定義 */
struct PersonalData
{
  /* メンバー変数 (つまり構造体の要素) を名前と年齢とする */
  char Name[100];
  int Age;
};

/* 上で定義された構造体を使ってみる */
int main(void)
{
  struct PersonalData pd; /* 構造体変数の宣言 */
  struct PersonalData *ppd; /* 構造体へのポインタ */

  scanf("%s", pd.Name); /* 値を入力 */
  scanf("%d", &(pd.Age)); /* 値を入力 */

  ppd = &pd;
  ppd->Age++; /* ポインタの参照先のメンバーにアクセスするにはアロー演算子->を使う。*/

  printf("%s-%d\n", pd.Name, pd.Age);
  return 0;
}

下記は構造体へのポインタをユーザー定義のオブジェクト型のハンドルとして利用する例である。

/* MyObject.h */
/* 構造体の前方宣言 */
typedef struct MyObject MyObject;

extern MyObject* MyObject_create(void); /* コンストラクタの代替 */
extern void MyObject_destroy(MyObject* obj); /* デストラクタの代替 */
extern void MyObject_setPosition(MyObject* obj, double x, double y);
extern void MyObject_getPosition(const MyObject* obj, double* outX, double* outY);
/* MyObject.c */
#include <stdlib.h>
#include <assert.h>
#include "MyObject.h"

/* 構造体の定義 */
struct MyObject {
    double x, y;
};

MyObject* MyObject_create(void) {
    return calloc(1, sizeof(MyObject));
}
void MyObject_destroy(MyObject* obj) {
    free(obj);
}
void MyObject_setPosition(MyObject* obj, double x, double y) {
    assert(obj);
    obj->x = x;
    obj->y = y;
}
void MyObject_getPosition(const MyObject* obj, double* outX, double* outY) {
    assert(obj && outX && outY);
    *outX = obj->x;
    *outY = obj->y;
}

近代的なAPI設計では、このようにしてC互換のオブジェクト指向インターフェイスを定義することがよくある。例えばOpenCL[10]Vulkan[11]などで類似の手法が実際に利用されている。ヘッダーでは構造体の前方宣言だけをすることにより、構造体の具体的な詳細(定義)はAPIのユーザーからは隠蔽されており、不透明な型 (opaque type) として扱われる(カプセル化)。

この手法を使うことで、C互換のインターフェイスを維持しつつ、API関数の実装をCだけでなくC++や他の言語で記述することもできるようになる。また、オブジェクトの生成・破棄を含むあらゆる操作をAPI関数経由に限定し、オブジェクトハンドルを介した操作のみを提供することで、異なるABI間でも正しくオブジェクトをやりとりすることができるため、C/C++以外の他の言語向けバインディング(ラッパーライブラリ)を記述することも容易になる。

C#の例

C#における構造体は、小規模なデータ構造の定義に適した値型 (value type) である[5]。C#におけるクラスはヒープ割り当てを必要とし、完全な継承機能をサポートする参照型 (reference type) である[6]一方、構造体はヒープ割り当てを必要としない軽量な値型であり、代わりに派生型を定義できないなど、制限されたクラスとして振る舞う。クラスと構造体の使い分けに関しては、ガイドラインが提示されている[12]

組み込みの軽量な型 (bool, char, int, double, etc.) もまた構造体である。

// int 型の数値リテラルも構造体 (System.Int32) のインスタンスであり、オブジェクトである。
string str = 123.ToString();

structキーワードを使用した、ユーザー定義の構造体の例を下に示す。プロパティやメソッド定義の一部にC# 6.0やC# 7.0で追加された糖衣構文が使用されているが、構造体自体はC# 1.0当初から存在する言語機能である。なお、C#の構造体は引数付きコンストラクタをユーザー定義することはできるが、引数のないコンストラクタ(デフォルトコンストラクタ)をユーザー定義することはできない。また、フィールドやプロパティを宣言時初期化することもできない。引数のないコンストラクタでは、各フィールドはその型の既定値で初期化される。C# 10.0以降の構造体は、引数のないコンストラクタをユーザー定義することもできるようになった[13]

using System;

public struct MutablePoint {
    /// <summary>カプセル化されたフィールド。</summary>
    private int _x, _y;
    /// <summary>X座標を取得・設定するプロパティ。</summary>
    public int X {
        get => _x;
        set => _x = value;
    }
    /// <summary>Y座標を取得・設定するプロパティ。</summary>
    public int Y {
        get => _y;
        set => _y = value;
    }
    /// <summary>原点からの距離を取得するプロパティ。</summary>
    public double Distance => Math.Sqrt((double)_x * (double)_x + (double)_y * (double)_y);
    /// <summary>引数付きコンストラクタ。</summary>
    public MutablePoint(int x, int y) {
        _x = x;
        _y = y;
    }
    /// <summary>System.ValueTypeのToString()メソッドをオーバーライド。</summary>
    public override string ToString() => $"({_x}, {_y})";
}

class Test {
    // フィールドで定義された構造体内の全てのフィールドはデフォルト値0で初期化されている。
    static MutablePoint s_point;
    static void Main() {
        Console.WriteLine(s_point.ToString()); // (0, 0) が表示される。
        // デフォルトコンストラクタ呼び出し。
        var zeroPoint = new MutablePoint();
        Console.WriteLine(zeroPoint.ToString()); // (0, 0) が表示される。
        // 引数付きコンストラクタ呼び出し。
        var point = new MutablePoint(5, 11);
        Console.WriteLine(TranslatePoint(point, 1, -9).ToString()); // (6, 2) が表示される。
        Console.WriteLine(point.ToString()); // (5, 11) が表示される。
        TranslatePoint(ref point, -2, 3);
        Console.WriteLine(point.ToString()); // (3, 14) が表示される。

        Console.WriteLine("Press any...");
        Console.ReadKey(true);
    }

    // 構造体型 (値型) は、仮引数に値のコピーが渡されるため、
    // メソッド内での仮引数の操作によって呼び出し元の実引数の値が変更されることはない。
    // 引数がrefパラメータならば、
    // あるいはMutablePoint型がstructではなくclassで宣言されていたならば、
    // 仮引数の状態の変更は実引数の状態に影響する。
    static MutablePoint TranslatePoint(MutablePoint p, int dx, int dy) {
        p.X += dx;
        p.Y += dy;
        return p;
    }
    static void TranslatePoint(ref MutablePoint p, int dx, int dy) {
        p.X += dx;
        p.Y += dy;
    }
}

C#のデータ型も参照のこと。

C#の構造体は属性によってメモリレイアウトを明示的に指定することができるため、C/C++の構造体との相互運用に便利である。Windows APIなどで定義されている構造体と互換性のある型をC#の構造体によってユーザー定義することで、P/Invokeに利用できる。

VB.NETF#といった.NET言語も、構文は異なるがC#と同様の構造体を備えている[7][14]

C++/CLIでは、value structまたはvalue classによって.NETの構造体型を定義することができる[15]

アライメント

構造体のメンバーのメモリレイアウトは、必ずしも連続しているとは限らない。実行環境(プロセッサアーキテクチャ)に合わせてアクセス効率が最適になるよう、コンパイラによってバイト境界に応じた無名の詰め物(パディング)が挿入されることがある。このパディングはシリアライズや相互運用などで問題になることがあるため、フィールド属性やコンパイラ特有のディレクティブによってアライメントを明示的に調整できる言語や処理系も存在する[16][17]。ただし、アライメントされていないアドレスに構造体メンバーが配置された場合、メンバーアクセスがバスエラーを引き起こすケースもある。

脚注

注釈

  1. ^ データクラスのすべてのプロパティをvalで宣言することで、イミュータブルにすることもできる。

出典

関連項目



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Structure」の関連用語


2
スラッツ デジタル大辞泉
90% |||||

3
ツリー構造 デジタル大辞泉
90% |||||




7
Is値 デジタル大辞泉
70% |||||

8
アイ‐エム‐エス‐エス デジタル大辞泉
70% |||||

9
70% |||||

10
54% |||||

Structureのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Structureのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
実用日本語表現辞典実用日本語表現辞典
Copyright © 2026実用日本語表現辞典 All Rights Reserved.
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
株式会社ストライク株式会社ストライク
Copyright Strike Co., Ltd. All rights reserved.
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.
コンテンツはAttribution-Share Alike 3.0 Unportedのライセンスで利用することができます。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの構造体 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS