Cの構造体

Structures C



Cでは、構造体は、変数のコレクションを単一のエンティティの下に格納するために使用されるユーザー定義変数です。簡単な例えを使用して、Cでの構造の実装と有用性を説明しましょう。

特定のサービスを使用しているユーザーに関する情報を保存するとします。このような情報には、ユーザー名、電子メール、アドレス、サービスモードなどが含まれます。このような情報を保存するために、各属性をスタンドアロン変数として作成することができます。ただし、10人以上のユーザーがいる場合、コードは制御不能になり、非常に読みにくく、面倒になる可能性があります。







これを解決するために、構造を作成できます。構造内に、すべてのユーザーが共有するすべての属性を格納してから、ユーザーごとに一意の変数を追加できます。



これを実装する方法を確認するために、さまざまな例を見てみましょう。



Cで構造体を定義する方法

Cで構造体を定義するには、structキーワードに続けて構造体の名前を使用します。名前の後に、メンバーを追加する中括弧のペアがあります。





以下の構文を検討してください。

構造体struct_name
{{
/* データ */
メンバー名を入力します;
member_name2と入力します;
member_name3と入力します;

..。
タイプmember_nameN;
};

構造体の名前は、Cプログラミング言語の命名規則に準拠している限り、任意の名前にすることができます。



ユーザーアナロジーの構造例を次のように実装できます。

構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
};

構造変数を作成する方法

構造変数を作成するには、主に2つの方法があります。 1つは通常の変数のように宣言することで、もう1つは中括弧を使用して設定することです。

以下の例は、構造体変数を標準のC変数として宣言する方法を示しています。

構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
};

int主要((intargc char const *argv[])。
{{
構造体ユーザーuser1user2user3
戻る 0;
}

構造変数を作成する他の方法は次のとおりです。

構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
}user1user2user3;

この例では、構造体の宣言時にそれらを作成します。

構造体メンバーの初期化

タイプに割り当てられたメモリがないため、作成中に構造体メンバーを初期化することはできません。

構造体のメンバーを初期化するには、以下に示すように中括弧を使用します。

構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
};
int主要((intargc char const *argv[])。
{{
構造体ユーザーuser1= {{'myusername' '[メール保護]' 35 NS}
戻る 0;
}

アクセス構造メンバー

構造体のメンバーにアクセスするには、構造体名、ドット、およびメンバーの名前から始まるドット演算子を使用します。

構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
};
int主要((intargc char const *argv[])。
{{
構造体ユーザーuser1= {{'myusername' '[メール保護]' 35 NS}
user1。Eメール = '[メール保護]'
戻る 0;
}

この例では、user1のメンバーにアクセスします。

Typedefキーワード

typedefキーワードを使用してデータ型のエイリアスを作成し、コードを読みやすくします。

例えば:

typedef 構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
}u;
int主要((intargc char const *argv[])。
{{
u user1= {{'myusername' '[メール保護]' 35 NS}
user1。登録済み = NS
戻る 0;
}

上記の例では、users構造のエイリアスuを作成しました。したがって、毎回structユーザーを呼び出す必要はありません。上で定義したようにuを使用できます。

構造体ポインタ

構造体へのポインタを持つこともできます。これを行うと、->演算子を使用してメンバーにアクセスできます。

例えば:

typedef 構造体ユーザー
{{
charユーザー名[20];
charEメール[225];
char住所[50];
int;
bool登録済み;
}u;
int主要((intargc char const *argv[])。
{{
u user1= {{'myusername' '[メール保護]' 35 NS}

//別の構造体へのポインタ
u*user_ptr= user1
user_ptr->ユーザー名= 'ptrusername'
戻る 0;
}

結論

このガイドでは、Cプログラミング言語で構造を操作するための基本について説明します。

読んでくれてありがとう!