
な~にをしておるのかの?
随分ご機嫌がよさそうじゃが・・・

何って?当たり前でしょ?新しいゲームが届いたんだもん。
と、言うわけで、今口はCはお休みね。

そうは問屋が下ろさんぞ!

いいじゃない~、一日くらい休憩入れたってえ~・・・

だ~めじゃ!

やだっ!今日は休みにするのっ!

・・・・。

あぁ”っ!!

ほれほれ、このくらいの事は朝飯前なんじゃぞ。

何やったー、博士ー!!
ひっきょうものぉー!

ゲームをやりたければ、さっさと今日の分を片付け・・・じゃない、じっくりと理解するまでやるぞ!
今日の分が終わった後なら思う存分ゲームをすればよいのじゃ!

ほ~ら、自分だって早く終わりたいくせにぃ・・・

・・・早く終わりたかったら、どんどん吸収することじゃな。
ほれ、今日は構造体じゃぞ!

聞いただけで、難しそう・・・

案ずるより産むが安しじゃ。
じっくりやれば、分かるじゃろう。

私でも、でしょ?

い、いや、そうとは言っておらんじゃろ?

言ってるようなもんだって!
構造体の宣言方法
- 構造体の形式の指定
struct タグ名 {メンバー; メンバー; ・・・};- タグ名:変数のグループ名
- メンバー:構造体を構成する変数
- 例:
struct 名簿 { int 番号; char 名前[20]; };
番号、名前のグループに、名簿という名前をつけた。
構造体の形式を指定しただけで、メモリに領域が取られるわけではない。 - 構造体の宣言
struct タグ名 構造体変数名; - 例:
struct タグ名 構造体変数名; - メンバ演算子 “.”
- 構造体を構成するメンバを指定する場合は、「.(ピリオド)を使う。」
タグ名の領域をもった構造体を、変数名で作る
構造体は運命共同体の変数!?

つまり、そのタグという鎖で繋がれたグループは、運命共同体てわけね?
金魚と金魚の糞のようなもんで、切ろうとしても切れないんだ!

もう少しきれいな表現はできんものかの?

・・・う~んとぉ・・・

そんなに真剣に悩まんでも・・・・運命共同体ってのはまあまあかの?
とにかくじゃ、ある件についていくつかの項目があった場合、こっちのファイルからあっちのファイルにデー夕を写したい時なんか便利じゃぞ。
普通の変数でコピーするなんていうと本当に面倒じゃ。
しかし構造体を使えば、まとめでコピーできてしまうんじゃ。

いらなくてもついてくるモーニングセット!

何を言っとるか、お前さんの場合それが目当てなんじゃろが!

ばれたか・・・・・
構造体のプログラム
#include <stdio.h> //構造体の形式を宣言 struct メイボ { int バンゴウ; char ナマエ[20]; }; main() { struct メイボ コウゾウタイ1; struct メイボ コウゾウタイ2={2, "Ika"}; コウゾウタイ1.バンゴウ=1; strcpy (コウゾウタイ1.ナマエ, "Tako"); printf("no1: %d:%s\n",コウゾウタイ1.バンゴウ, コウゾウタイ1.ナマエ ); printf("no2: %d:%s\n",コウゾウタイ2.バンゴウ, コウゾウタイ2.ナマエ ); //1番目のデータを2番目にコピー コウゾウタイ2=コウゾウタイ1; printf("no2: %d:%s\n",コウゾウタイ2.バンゴウ, コウゾウタイ2.ナマエ ); }
実行結果
no1: 1:Tako
no2: 2:Ika
no2: 1:Tako
チェックポイント

一度構造体の形式を指定しておけば、いくつでも構造体を宣言することができるんじゃ。
このプログラムでは、「コウゾウタイ1」と「コウゾウタイ2」の2つを「struct メイボ」型」で宣言しておるのじゃ。

初期値を設定する場合は、{ }で囲んで順に並べていくんじゃよ。
一旦、構造体の形式を指定しておけば普通の変数のように宣言したり、関数への引数としたり、returnの戻り値として書いたりもできるんじゃ。
なんにしても、優れ物じゃーて!

XXショッピング。
あれも、これも、もれなくついてくるすぐれもの!
今ならセットで1万円、1万円でお買い得っ!お申込みは、今すぐっ!

・・・・・スイッチ処理の仕方、間違ぉとらんかの?

天然フレキシブルスイッチですんで・・・

やっぱし☆
構造体で配列を使ってみよう。

まずは構造体で配列を使ってみるのじゃな。
教科書を見てやってみようかの。
構造体配列のプログラム用の名簿
meibo | |||||
---|---|---|---|---|---|
メンバー | bangou | name[10] | cobol | casl | goukei |
型 | int型 | chari型 | int型 | int型 | int型 |
data[0] | 1 | Tako | 100点 | 100点 | |
data[1] | 2 | Ika | 100点 | 90点 | |
data[2] | 3 | pu | 50点 | 10点 |
構造体配列のプログラム
#include <stdio.h> //構造体meiboの形式の指定 struct meibo { int bangou; char name[20]; int cobol; int casl; int goukei; }; main() { //struct meibo型の配列dataを宣言 struct meibo data[] { {1,"Tako",100,100,0} , {2,"Ika",100,90,0} , {3,"pu",50,10,0} , }; int i; for(i=0;i<=2;i++) { data[i].goukei=data[i].cobol+data[i].casl; printf("%d:%s %d %d %d\n",data[i].bangou, data[i].name, data[i].cobol, data[i].casl, data[i].goukei ); } }
実行結果
1:Tako 100 100 200
2:Ika 100 90 190
3:pu 50 10 60

なんじゃ、さっきと(教科書)と点数が違うじゃないかの。

名前も本と変えたからねえ・・・。
点数が本のままだとだーれかさんに頭を叩かれそうで・・・。