構造体変数の初期化

構造体の変数も = の初期化指定子を使って、あらかじめ記憶されるデータの指定ができます。
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 }; の代入演算子を使った式はエラーになります。