構造体の変数も = の初期化指定子を使って、あらかじめ記憶されるデータの指定ができます。
C言語では、一つの構造に対して、 { と } で囲み、
内部は、コンマで区切る規則になっています。
この場合、
構造体定義ににおいてメンバ宣言を並べた順番の通りに、
省略せずにデータを並べる必要があります。当然に、メンバに記憶できるデータ型の式でなければなりません。
以下で、簡単な初期化例を使った実行例とプログラム例を示します。
suzuki の変更入力>yamada 50点の変更入力>70 yamada 点数:70
#include <stdio.h>
struct Data {
char name[10];
int idata;
};
struct Data a = { "suzuki" , 50 };
main()
{
struct Data b;
printf("%s の変更入力>" , a.name );
gets( a.name );
printf("\t%d点の変更入力>" , a.idata );
scanf("%d", & a.idata );
b = a;/* aの内容をbにコピー */
printf("%s 点数:%d\n", b.name , b.idata);
}
= { "suzuki" , 50 }を、
= { 50 , "suzuki"}と書いてしまうと、間違いです。
構造体メンバの並びは、nameとidataですが、それぞれが char *型 と int型なので、
この順番で、この型の表現でなければなりません。
なお、構造を定数として表現することはできないので、
実行文において、
a = { "suzuki" , 50 }; の代入演算子を使った式はエラーになります。