【结构体】结构变量的定义与初始化

1.结构变量的定义

声明了结构类型后,还需要定义结构变量,以便在程序中引用它。

结构变量和其他变量一样,必须先定义后使用

1)先定义结构类型,再定义结构变量

struct books
{	int bno;
  char  bname[20],field[10],author[10],
						publisher[30];
	float price;
};
struct books book1,book2;

2)定义结构类型的同时定义结构变量

struct books
{ int bno;
char name[20],field[10],author[10],publisher[30];
float price;
}book1,book2;

3)直接定义结构变量

struct
{	int bno;
	char bname[20],field[10];
	float price;
}book1,book2;

注意:方式(3)中没有给出结构名,在此定义语句后面无法再定义这个类型的其他结构变量。

2.结构变量的初始化

(1)结构变量在定义的同时也可以进行初始化。
(2)结构变量初始化的一般形式是在定义变量的后面加上 ={ 初值表列 };
#include<stdio.h>
int main()
{	struct books		/*结构类型*/
	{	int bno;
		char bname[20],field[10],author[10],publisher[30];
		float price;
	};
	struct books bk1={	/*初始化*/
		1001,"c programming","computer","xuwei","renminyoudianpress",39.0
	};
	printf("bno=%d\nbname=%s\nfield=%s\n",bk1.bno,bk1.bname,bk1.field);
	printf("author=%s\n",bk1.author);
	printf("publisher=%s\nprice=%f\n",bk1.publisher,bk1.price);
	return 0;
}

注意:

1)对结构变量初始化时,需要按照其成员出现的顺序对每个成员依次赋值,不能跳过前面的成员给后面的成员赋值,例如下面的用法是错误的。

                (上面的代码框里初始化时就可看出一一对应关系)

2)不能在结构内部给成员赋初值,例如下面的用法是错误的。

 struct books

 {  int bno=1001;

    char bname[20]="c programming";

  char field[10]="computer";

  char author[10];

  char publisher[30];

  float price=23;

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值