Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 構造体へのポインター | ポインタと構造体の操作
C構造体
セクション 2.  2
single

single

構造体へのポインター

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

Cプログラミング言語では、通常のデータ型だけでなく構造体(構造体はカスタムデータ型)へのポインタも作成可能。

ポインタの宣言と初期化は次のようになります:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

<name_of_pointer> が構造体へのポインタの場合、
*(<name_of_pointer>) は構造体そのもの。

ポインタを通じて構造体のフィールドにアクセスするには、-> 演算子を使用。

Note
注意

-> は構造体アクセス演算子 . の類似。

main.c

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つの座標 Pointx を格納する y 構造体の操作方法を示しています。main 関数では、p1 変数が作成され、座標値が代入され、その後この構造体へのポインタが初期化されます。-> 演算子を使用して、ポインタを通じて構造体のフィールドにアクセスし、ポイントの座標を画面に出力します。

タスク

スワイプしてコーディングを開始

学生が3科目(Math、Physics、Programming)の成績を持っています。
この学生の平均点を計算し、コースに合格したかどうかを判定してください。

calculateAverageAndCheck関数内では、

  1. ポインタを使って各科目の成績にアクセスします。
  2. 3つの成績を合計して総得点を求めます。
  3. 総得点を3.0割って平均点を計算します。
  4. 結果を60の合格基準と比較します。
  5. 平均点が60以上の場合はtrue(合格)を返します。
  6. それ以外の場合はfalse(不合格)を返します。

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

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

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

セクション 2.  2
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt