目次:
- Cプログラミングで構造内に構造を入れる方法
- 変数の型として、関数が構造体を食べて咳をすることは完全に可能です。ただし、このような状況では、構造体をグローバル変数として宣言する必要があります。これは、関数内で構造体を宣言し、main()が関数である場合、定義はその関数でのみ使用できるからです。
ビデオ: The wonderful and terrifying implications of computers that can learn | Jeremy Howard 2024
構造は、おそらくC言語の変数の中で最も奇妙なものです。それらを作成するために必要な2つのステップは普通ではありませんが、構造体のメンバを参照するdotメソッドは、常に最初のプログラマを捨て去ってしまうようです。これらの2つの問題を越えて構造物がどんな腐敗もできないと思ったら、あなたは間違っていると誤解しています。
Cプログラミングで構造内に構造を入れる方法
<! - 1 - >構造体にはC言語変数が含まれていることは事実です。また、構造体がC言語変数であることも当てはまります。したがって、構造物は、他の構造物を部材として保持することができる。このような奇妙な考え方があなたを混乱させないようにしてください。代わりに、Aネストされた構造に示されている例を見てください。
ネストされた構造体
#include #include int main(){struct date {int month; int day; int year;}; struct human {char name [45];構造体の日付誕生日;};人間の大統領を構成する。 strcpy(社長、 "George Washington");大統領。お誕生日。月= 2;大統領。お誕生日。日= 22;大統領。お誕生日。年= 1732; printf( "%sは%d /%d /%dnで生まれました"、大統領名、大統領誕生日、月長、大統領誕生日、大統領誕生日年)
ネストされた構造体は、6行目の日付と12行目の人間の2つの構造体型を宣言します。人間の構造体の宣言では、15行目に日付構造変数 birthday が宣言されています。それは事実上、ある構造が他の構造の中でどのように生まれるかです。
<! - 2 - >行17は、人間の構造変数 社長 を作成します。残りのコードは、その構造体のメンバーをデータで埋めます。ネストされた構造体のメンバーにアクセスする方法は、20行目から22行目に示されています。
構造体の変数名が使用されます。構造を宣言するために使用された名前ではありません。
演習1 : Aネストされた構造からエディタにソースコードを入力します。プログラムをビルドして実行します。
<!演習2: 人構造の 名前 メンバを入れ子構造で置き換えます。その構造体IDに名前を付け、それに2つのメンバーchar型の配列firstとlastを入れて、個人の名字と姓を格納します。すべてを正しく行うと、大統領の名前への参照は変数 になります。名。最初の および 大統領。名。最後の 。これらの変数にコード内の値を割り当てて、結果を表示してください。 Cプログラミングの関数に構造体を渡す方法
変数の型として、関数が構造体を食べて咳をすることは完全に可能です。ただし、このような状況では、構造体をグローバル変数として宣言する必要があります。これは、関数内で構造体を宣言し、main()が関数である場合、定義はその関数でのみ使用できるからです。
したがって、宣言はコード内のすべての関数で使用できるようにグローバルに行わなければなりません。