概述
一 struct简介:定义一个结构类型。
二 用法:
1 .用法一:定义一个简单结构:
(1)形式:
形式一:struct book
{
char title[maxtitl];
char author[maxautl];
float value;
}; //创建结构模版
struct book library; //声明结构变量
形式二:struct book
{
char title[maxtitl];
char author[maxautl];
float value;
}library; //创建结构并声明变量
形式三:struct
{
char title[maxtitl];
char author[maxautl];
float value;
}library; //创建结构并声明变量,但未使用标记符,若要多次使用,
//要加一个标记符或者使用typedef
注意:上述中的maxtitl(书名的最大长度)、maxautl(作者名字的最大长度)已经被宏定义
(2).功能:
在表示数据时,使用简单的变量或者数组等数据类型不够的情况下,可使用结构struct来进一步增强c表示数据的能力,并且struct可以创建新的数据形式。
(3).说明:
访问结构成员用运算浮点“.”,例如访问上述结构中的成员title:gets(libraty.title)
2 .用法二:定义一个结构数组
(1)形式:
在创建一个结构模版的前提下,在主函数中定义一个结构数组,定义的形式(以上述形式一创建的模版为例): struct book library[maxbks] //声明结构数组
(2)功能:
如果要描述多个同种结构时,定义一个数组结构可避免多次声明结构变量的麻烦。
(3)说明:
a. 上述中的maxbks(书本的数量)已经被宏定义。
b. 标识数组结构成员用运算符“.”,例如表示上述结构中的成员title:
library[0].title //第一个数组(在这指第一本书)元素的title成员
library[0].title[0] //第一个数组(在这指第一本书)元素的title成员的第一个字符
library[1].title[0] //第二个数组(在这指第二本书)元素的title成员的第一个字符
3 .用法三:结构指针
顾名思义,结构指针就是指向结构的指针。
(1)形式:
在创建一个结构的前提下来声明一个结构指针,声明结构指针的形式(还是以上述形式一为例):
struct book *bp //bp是一个指向任何book结果的指针
(2)功能:
可使用指针来访问结构成员。
(3)说明:
a.声明一个结构指针不是建立一个新的结构,而是意味着bp现在可以指向任何现有的book类型的结构。
例如:library是一个book类型的结构,那么就可以:
bp = &library //bp就是一个指向结构library的指针。
(注意,和数组不一样,一个结构的名字不是该结构的地址)
library[maxbks]是一个结构数组,那么就可以:
bp = &library[maxbks] //bp就是一个指向结构数组library[maxbks]的指针
(bp加一,那么就是加上整个结构所占的内存空间大小,即由library[0]变为library[1])
b. 使用指针访问成员:如果him是一个指向library的指针,那么访问结构成员title的形式如下:
him->title 或者(*him).title //(括弧不能省,“.”比“*”的优先级高)
(注意:以下三种访问结构的表达式是等价的:book.title= him->title=(*him).title )
最后
以上就是神勇大船为你收集整理的关键字struct的用法的全部内容,希望文章能够帮你解决关键字struct的用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复