C结构

一.建立结构声明
结构声明 structure declaration

	struct book{
		char title[20];
		float value;
	};
	

首先是关键字struct,它表明跟在其后的是一个结构,后面是一个可选的标记(例子中为book),在程序中使用该标记引用结构。在后面的程序中可以这样声明:

struct book library;
这把library声明为一个使用book结构布局的结构变量。

二.定义结构变量
在结构变量的声明中,struct book 所起的作用相当于一般声明中的int 或float。

	struct book library;
	是以下声明的简化:
	struct book{
 		 char title[20];
	 	 float value;
	}library;

即声明结构的过程和定义结构的过程可以组合成一个步骤,也可以不使用结构标记(book),但是打算多次使用结构模板,就要用带标记的形式。
三.初始化结构
初始化一个结构变量与初始化数组的语法相似:

	struct book library={
		"fuck",
		"love u",
		1.95
	}

即用一对花括号中括起来的初始化列表进行初始化,各初始化项用逗号分隔。为了让初始化项与结构中各成员的关联更加明显,我们让每个成员的初始化项独占一行,这样只是为了提高代码的可读性。
四.访问结构成员
使用结构成员运算符----点(.)访问结构中的成员。
就像library.value即访问libarary中的value部分。
虽然library是一个结构,但是library.value是一个float变量,可以像使用其他float变量那样使用它。例如scanf("%f",…)需要一个float类型变量的地址,而&library.value正好符合要求。.比&的优先级高,因此这个表达式和&(library.value)一样。
五.声明结构指针

struct guy {
	char first[10];
	char job[10];
	float income;
};	

声明结构指针:struct guy * him;
该声明并未创建一个新的结构,但是指针him现在可以指向现有的guy类型的结构。例如,如果barney是一个guy类型的结构变量,可以这样写:

him = &barney;

和数组不同的是,结构变量名并不是结构变量的地址,因此要在结构变量名前面加上&运算符。
六.用指针访问成员
最常用的方法:使用->运算符。有下面的关系

如果 him==&barney,那么him->income即是barney.income
如果him ==&fellow[0],那么him->income即是fellow[0].income

换句话说,指向结构的指针后面的->运算符和结构变量名后面的(.)运算符工作方式相同,不能写him.income,因为him不是结构名。
(.)运算符比运算符的优先级高
如果him == &fellow[0],那么
him == fellow[0],可以以下替代

fellow[0].income==(*him).income;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值