Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 構造体の応用 | 構造体の導入
C構造体

構造体の応用

メニューを表示するにはスワイプしてください

プログラムを設計する際、管理するデータの表現方法の選択は非常に重要なステップです。

例えば、原子内の中性子数を自動計算するシンプルなプログラムを作成したい場合を考えます。

A-Z

ここで、N は中性子数、A は元素の原子質量、Z は陽子数を表します。C言語で中性子数を計算する関数は次のようになります。

int NeutronCount(float A, int Z)
{
	int N = A - Z;
	return N;
}

この関数を使用するには、各化学元素の特性ごとに大量の変数を宣言し、混乱しないようにする必要があります。

計算は自動化されていますが、利便性や速度の面で特に有利になっていません。化学元素のパラメータを毎回入力し、結果をどこかに書き留めるなど、非常に不便です。

char firstElementName[3];
int firstElementAtomicNum;
int firstElementValency;
double firstElementMass;

char secondElementName[3];
int secondElementAtomicNum;
int secondElementValency;
double secondElementMass;

char thirdElementName[3];
int thirdElementAtomicNum;
int thirdElementValency;
double thirdElementMass;

他の118の化学元素についても同様です。

「お気に入りの言語であるCに、複雑なデータを記述し操作する仕組みがあればいいのに」と考えました。

今後、どの化学元素も記述できる構造体を、例えばシリコン("Si")を例に視覚的に表現してみましょう:

chemical+element

非常に便利です。複数の個別変数を作成する代わりに、すべてのフィールドを保持する構造体を定義できます。C言語には、これに必要なすべての機能がすでに備わっています。

question mark

なぜ各要素ごとに個別の変数を使って中性子数を計算するのは不便なのですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  2
some-alt