对数据结构的认识

1.1结构的基本知识

1.1.1结构声明形式:
struct 结构标记{
结构成员;
}变量表;
结构标记:结构标记可选的,用于为结构命名,在定义之后,结构标记可以代表花括号内的声明,可以作为该声明的简写形式。
注意:结构标记、结构成员、普通变量(非成员) 可以采用相同的名字,他们之间不会冲突,同时,不同结构中的成员可以使用相同的名字(注:从编程风格上,一般使用相同名字的对象其密切相关)
struct struct 声明数据类型跟其他基本类型的变量声明相同的,如:
struct area { int length; int wide; }x,y,z;
与 int x,y,z; 声明在语法上是具有相同的意义,都为x,y,z声明指定的类型,并分配存储空间,如果结构声明的后面不带变量表,则不需要为它分配存储空间,他只是描述了一个结构的模板或轮廓。
1.1.2结构初始化
结构声明可以通过结构标记来定义,同时,结构在定义后面可以赋初值表来初始化,但初值表中同每个成员对应的初值必须是常量表达式,如:
struct area m = {14,6};
其中,自动结构也可以通过赋值初始化,也可以通过调用返回相应类型结构的函数进行初始化
1.1.3结构成员的引用
其形式为
结构名.成员
其中结构成员运算符 “ . ” 将结构和成员名连接起来。
ex:打印某区域的长度和宽度
printf("length = %d wide = %d\n",m.length,m.wide);
1.2结构与函数
1.2.1结构的合法操作
作为一个整体复制和赋值(赋值和复制包括向函数传递参数和从函数返回值 )
通过&运算符去地址
访问其成员
1.2.2结构指针
在传递结构体时,如果传递的结构很大,如果使用复制方式传递结构,会使得传递效率不高,因此,出现了指针的方式传递结构,结构指针类似于普通变量的指针。
ex:struct area *p;
这句语句将p定义为一个指向struct area类型对象的指针(如果p指向一个area类型的指针,那么*p为该结构体)。
ex:
struct area card ,*card_p;
card_p = &card;
printf("the length and wide of the card:length = %d wide = %d\n",
(*card_p).length,(*card_p).wide);
其中,在例子中使用的(*card_p).length 中的圆括号是不可少的,因为 “.” 的优先级高于 “ * “
因此,C语言中提供了另外一种简写方式,
ex:
printf("the length and wide of the card:length = %d wide = %d\n",card_p->length,card_p->wide);

指向结构体的指针->结构成员

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值