目次:
ビデオ: C言語プログラミング講座第一回 - プログラミングの基本 - 2024
Cプログラミング言語の構造は、 多変数、 複雑な情報を格納またはアクセスするために構造を使用します。こうすることで、さまざまなint、char、float変数、さらには配列を、きちんとしたパッケージにまとめることができます。
基本 構造体
構造体は可変型ではありません。代わりに、複数の変数型を保持するフレームと考えることができます。多くの点で、構造はデータベース内のレコードに似ています。例:
<! - 1 - >名前年齢ギャンブル債務
これらの3つの項目は、データベースレコードのフィールドにすることができますが、構造内のメンバでもあります。年齢、整数。および符号なし浮動小数点値のギャンブル債務。このようなレコードがCの構造体としてどのように見えるかは次のとおりです。
struct record {char name [32];年齢;フロート債務;};
structは、新しい構造を導入、定義、または作成するC言語のキーワードです。
<! - 2 - >recordは、作成される新しい構造の名前です。
中括弧の中には、構造体のメンバ、名前付き構造体に含まれる変数が格納されます。レコード構造体タイプには、文字列名、年齢の名前のint、および浮動小数点値の3つのメンバー変数が含まれています。
構造体を使用するには、作成した構造体型の構造体変数を宣言する必要があります。たとえば、
<! - 3 - >構造体レコードの人間;
この行は、レコード構造体タイプの新しい変数を宣言します。新しい変数の名前は human です。
構造変数は、構造自体を定義するときに宣言することもできます。次に例を示します。
struct record {char name [32];年齢;フロート借金;}人間;
これらのステートメントはレコード構造体 を定義し、 はレコード構造体変数 human を宣言します。その構造体型の複数の変数も作成できます:
struct record {char name [32];年齢;フロート借金;}法案、メアリー、ダン、スーシー;
この例では、4つのレコード構造変数が作成されています。すべての変数は、構造体で定義された3つのメンバーにアクセスできます。
構造変数のメンバーにアクセスするには、 メンバー演算子 であるピリオドを使用します。構造体変数名とメンバ名を結びつけます。例:
printf( "被害者:%sn"、請求書名);
このステートメントは、 bill 構造変数のnameメンバーを参照します。 char配列であれば、他のchar配列と同じようにコード内で使用できます。構造変数の他のメンバも、個々の対応するものと同様に使用できます。
dan。年齢= 32;
構造体を埋める方法
他の変数と同様に、構造変数が作成されたときに値を割り当てることができます。最初に構造体タイプを定義し、そのメンバー値を事前に設定して構造体変数を宣言する必要があります。初期化された構造の宣言で示すように、プリセット値が構造体で定義されたメンバーの順序と型と一致することを確認してください。
初期化された構造の宣言
#include int main(){struct president {char name [40]; int year;}; struct president first = {"George Washington"、1789}; printf( "最初の大統領は%snだった"、最初の名前); printf( "彼は%dnで始まった"、最初の年);
演習1 : 初期化された構造の宣言からエディタにソースコードを入力して、新しいプログラムを作成します。ビルドして実行します。
構造体を宣言して1つのステートメントで初期化することもできます。
struct president {char name [40]; int year;} first = {"George Washington"、1789};
練習2 : 練習1のソースコードを変更して、構造と変数が宣言され、1つのステートメントとして初期化されるようにします。
構造体を宣言して構造変数を初期化することはできますが、そのトリックは一度だけ取り除くことができます。 2番目の構造変数を宣言するためのテクニックを使用することはできません。これは、「初期化された構造の宣言」に示すように従来の方法で行う必要があります。
演習3 : コードに別の大統領構造変数を追加し、1797年に発足した第2代大統領ジョン・アダムスの情報で構造を初期化します。
構造体の配列を作成する方法
個々の構造体変数を順番に作成することは、一連の個々の変数型を作成するのと同じくらい退屈で無駄です。複数の構造の解は、複数の個別変数と同じです:配列。
構造体配列は次のように宣言されます:
struct score players [4];
このステートメントは、スコア構造体の配列を宣言します。配列はplayerという名前で、要素として4つの構造変数があります。配列内の構造体は、配列表記法と構造表記法の組み合わせを使用してアクセスされます。例:
プレーヤー[2]。 name
前の行の変数は、プレーヤ構造体配列の3番目の要素のnameメンバにアクセスします。はい、これは3番目の要素です。最初の要素が
player [0]のように参照されるからです。 name
配列は、要素1ではなく、要素0で番号付けを開始します。
構造体の配列10は、4つのスコア構造の配列を宣言します。配列の名前はplayerです。 13行目から19行目は配列内の各構造体を埋めます。 21行目から27行目には、各構造体のメンバー値が表示されます。
構造体の配列
#include int main(){struct scores {char name [32]; int score;};構造スコアプレーヤー[4]; int x; for(x = 0; x <4; x ++){printf( "プレイヤー%dを入力:"、x + 1); scanf( "%s"、player [x])名); printf(「彼らのスコアを入力してください:」); scanf( "%d"、&player [x]。score);} puts( "Player Info"); printf( "#tNametScoren"); (x = 0、x <4; x ++){printf( "%dt%st%5dn"、x + 1、player [x]。
演習4
: Arrays of Structuresのソースコードをエディタに入力します。プログラムをビルドして実行します。スコアが5桁未満になるようにして、正しく整列させるようにしてください。 演習5
: 配列の構造にコードを追加して、構造の表示が最初にリストされた最高スコアでソートされるようにします。はい、これを行うことができます。構造体の配列をソートすることは、他の配列をソートするのと同じように機能します。 解説は次のようになります:
player [a] = player [b];
配列要素を入れ替えることができるのと同じように、構造配列要素を入れ替えることができます。構造体変数のメンバーを交換する必要はありません。