別々の構造体内部に同変数を使用した場合の住み分け
Posted: 2012年6月19日(火) 22:25
よろしくお願いします。
同学年6クラスという構造体をつくり、
クラスごとに、いくつかのグループで成績を管理したいと思います。
Class[5]
------------------------
Group_A[4]
番号(int No;)
成績(int Score)
名前(char Name)
年齢(int age)
Group_B[3]
番号
成績(int Score)
名前(char Name)
体重(double wight)
-------------------------
上記のような、中の形状が異なる入れ子状の構造体を作成しました。
初期状態に0を代入してから、それぞれに値を入れています。
成績の部分を数回更新して、そのたび値の代入をしようとしているのですが、
問題が出てきて困っています。
Class[0].Group_B[0].Score = 80;と代入したところ、
Class[0].Group_B[1].Score などにも「80」が入っていました。
知人に相談したところ、宣言した成績の変数が全て「int Score」だから
格納されている場所に関係なく、代入された値は
すべての「int Score」に同じ値が入っているのではとのことでした。
それにしては、値「80」が入っていない構造体のあるので、
正直あまり納得できていません。
とりあえず、
int Score[4] と配列にして、
(構造体名).Group_B[1].Score[1] = 80;
(構造体名).Group_B[2].Score[2] このように
住み分けさせて、別に取り扱えるようにしよう考えています。
しかし知人の論法ですと、違うグループも同様になるのではと思います。
(構造体名).Group_B[1].Score[1] = 80;
(構造体名).Group_A[1].Score[1]にも、80が入ってしまうことになります。
この問題は、知人の言うとおり、代入された値はすべての「int Score」に
値が入るからなのでしょうか?
もし、そうでしたら、何か解決方法は無いでしょうか?
変数名を変えれば良いのですが、都合があって同じ変数名で統一したいのです。
ご存知の方がおりましたら教えてください。よろしくお願いいたします。
同学年6クラスという構造体をつくり、
クラスごとに、いくつかのグループで成績を管理したいと思います。
Class[5]
------------------------
Group_A[4]
番号(int No;)
成績(int Score)
名前(char Name)
年齢(int age)
Group_B[3]
番号
成績(int Score)
名前(char Name)
体重(double wight)
-------------------------
上記のような、中の形状が異なる入れ子状の構造体を作成しました。
初期状態に0を代入してから、それぞれに値を入れています。
成績の部分を数回更新して、そのたび値の代入をしようとしているのですが、
問題が出てきて困っています。
Class[0].Group_B[0].Score = 80;と代入したところ、
Class[0].Group_B[1].Score などにも「80」が入っていました。
知人に相談したところ、宣言した成績の変数が全て「int Score」だから
格納されている場所に関係なく、代入された値は
すべての「int Score」に同じ値が入っているのではとのことでした。
それにしては、値「80」が入っていない構造体のあるので、
正直あまり納得できていません。
とりあえず、
int Score[4] と配列にして、
(構造体名).Group_B[1].Score[1] = 80;
(構造体名).Group_B[2].Score[2] このように
住み分けさせて、別に取り扱えるようにしよう考えています。
しかし知人の論法ですと、違うグループも同様になるのではと思います。
(構造体名).Group_B[1].Score[1] = 80;
(構造体名).Group_A[1].Score[1]にも、80が入ってしまうことになります。
この問題は、知人の言うとおり、代入された値はすべての「int Score」に
値が入るからなのでしょうか?
もし、そうでしたら、何か解決方法は無いでしょうか?
変数名を変えれば良いのですが、都合があって同じ変数名で統一したいのです。
ご存知の方がおりましたら教えてください。よろしくお願いいたします。