Autorleaders控制组-C语言结构体学习笔记

目录

一.结构类型

二.声明结构的形式

三.结构的初始化

四.结构访问方式

五.结构运算

六.结构指针

七.结构与函数

八.结构数组

九.结构中的结构


一.结构类型

这是一个普通的结构,结构的名字叫做date。

该结构(任一一date结构的变量都包括这三个内容)包括三个内容:int类型的month, int类型的day,int类型的year。

结构体即可声明在函数内部,也可以声明在函数外。声明在函数外的可以在任何函数中使用。

注意:结构体大括号后面一定要加 ;。结构中的内容在主函数中调用时,用的就是结构中的内容名。

二.声明结构的形式

p1,p2都是point结构的变量,里面都含有x,y。

p1,p2都是无名结构的变量,里面都含有x,y。

p1,p2都是point结构的变量,里面都含有x,y。(比较常见)

三.结构的初始化

使用大括号进行初始化。结构有几个内容就输入几个值。

像这种,没有输入全值的个数,就会将使未输入值对应的内容的值=0。

四.结构访问方式

变量名称 + '.' +内容名称。

例如:p1.x, p1.y

五.结构运算

可以做赋值,取地址,也可以传递给参数。

p1 = (struct point){5,1}; //相当于x=5,y=1,将这两个值强制转换成结构类型变量并赋给p1

p1 = p2;//相当于p1.x=p2.x,p1.y=p2.y

注意:数组变量不能这么做,因为数组变量是const,初始化后不能将数组变量等于另一个变量,也不能用一个大括号给它赋值。

六.结构指针

与数组不同,结构变量的名字并不是结构的地址,取地址需要用&。

struct date *pDate = &today;

将today的地址赋给结构指针pDate。

七.结构与函数

(1)结构作为函数参数

整个结构可以作为参数的值传入函数。

这时候在函数中新建一个结构变量,并复制调用者的结构的值。

函数可以返回一个结构。

(2)输入结构

不能用scanf一次将一个结构赋值。

1.临时建立一个结构变量,把这个结构返回给调用者。

2.通过结构指针

用->表示结构指针(所指也应为结构变量)所指的结构变量中的内容。

例如:p->month表示p所指的结构变量中的myday的值。

八.结构数组

dates[100]是一个结构类型的数组,第二行的声明中要用两个大括号进行赋值。

注意:一个大括号只是一个元素中的值,例如{4,5,2005}(这三个值分别对应结构中的三个内容,在这个程序中,结构数组中的每一个单元都含有结构中的三个内容)只是dates[0]中的值。

九.结构中的结构

注意:没有rp->pt1->x这样的表达,因为pt1并不是指针。并且->后面一定是要包含外结构的内容.里结构的内容,即有几层结构镶嵌就要包含几个内容。这样的形式是一个值,若使用scanf初始化则要用&来赋值。

对于rects来说,后面的最外层的大括号表示这个数组,第二层大括号分别与结构变量p1,p2相对应,即p1,p2的值,又因为p1,p2中又是结构point的变量所以个包含两个内容,所以最后一层大括号和x,y对应。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值