C/C++で、複数の変数を一まとめにしたもの。
同じような用途に使う変数を一つにまとめ、整理するのに用いることができる。
実際に内容を参照する場合は、構造体名.変数名、とする。
C++ではCより機能が拡張され、メンバ関数を含むことが可能となった。
そのため実質クラスと同等の機能を持ってしまい、C++のクラスは不必要ではないかという考えが生まれることにもなった。
元々クラスと構造体は概念の異なるもので、C++設計時点で、「似ているからついでに」拡張し、構造体がメンバ関数を持てるようにしてしまった言語設計自体が愚かだったのである。
しかし構造体にメンバ関数があっても不利益がないという考え方もあり、クラスを使うか構造体を使うかはプログラマの好みの問題となる。