セクション 2. 章 2
single
構造体へのポインター
メニューを表示するにはスワイプしてください
Cプログラミング言語では、通常のデータ型だけでなく構造体(構造体はカスタムデータ型)へのポインタも作成可能。
ポインタの宣言と初期化は次のようになります:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
<name_of_pointer> が構造体へのポインタの場合、*(<name_of_pointer>) は構造体そのもの。
ポインタを通じて構造体のフィールドにアクセスするには、-> 演算子を使用。
注意
-> は構造体アクセス演算子 . の類似。
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
このプログラムは、2つの座標 Point と x を格納する y 構造体の操作方法を示しています。main 関数では、p1 変数が作成され、座標値が代入され、その後この構造体へのポインタが初期化されます。-> 演算子を使用して、ポインタを通じて構造体のフィールドにアクセスし、ポイントの座標を画面に出力します。
タスク
スワイプしてコーディングを開始
学生が3科目(Math、Physics、Programming)の成績を持っています。
この学生の平均点を計算し、コースに合格したかどうかを判定してください。
calculateAverageAndCheck関数内では、
- ポインタを使って各科目の成績にアクセスします。
- 3つの成績を合計して総得点を求めます。
- 総得点を
3.0で割って平均点を計算します。 - 結果を60の合格基準と比較します。
- 平均点が60以上の場合は
true(合格)を返します。 - それ以外の場合は
false(不合格)を返します。
Example
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 2
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください