美文网首页
第3周:结构类型——3.2 结构

第3周:结构类型——3.2 结构

作者: hyt222 | 来源:发表于2017-06-14 20:42 被阅读0次

1.结构

如果你想表达的数据比较复杂,它不是一个值(如日期、时间)。希望用一个整体表达结合在一起的数据。

一个结构就是一个复合的数据类型,在里面可以有很多各种类型的成员,然后我们用一个变量来表达那么多的数据。

2.声明结构类型

第一种形式最常见。x,y 表示结构里的成员,将来每一个 point 里都会有这两个成员。上面声明结构,下面定义变量。

初学者最常见的错误:漏了分号。

和本地变量一样,在函数内部声明的结构类型只能在函数内部使用。

所以通常在函数外部声明结构类型,这样就可以被多个函数所使用。

结构类型和结构变量是两件事情。

3.结构的初始化

对于结构,用大括号赋值。和数组初始化差不多,没给值的填 0 。

4.结构成员

结构和数组有点像。

数组用 [ ] 运算符和下标访问其成员,结构用 . 运算符和名字访问其成员。

数组里头有很多单元,结构里头有很多成员。数组里头必须是相同类型,结构成员可以是不同类型。

5.结构运算

要访问整个结构,直接用结构变量名字。

对于整个结构,可以做赋值、取地址,也可以传递给函数参数。


6.结构作为函数参数

int numberOfDays(struct date d);

整个结构可以作为参数的值传入函数,也可以返回一个结构。

这时候是在函数内新建一个结构变量,并复制调用者的结构的值。在函数里头,作为参数它是一个新的结构变量。

7.结构指针作为参数

和数组不同,结构变量的名字并不是结构变量的地址,必须使用 & 运算符。

struct date *pDate = &today;

传指针更有效率,在函数内建立一个结构变量既费空间又费时间。

用 -> 表示指针所指的结构变量中的成员。

struct date *p = &myday; p->month = 12;

如果需要保护传入的结构不被函数修改,const struct date *d;

函数返回传入的指针是一种套路,将来可以串在其他函数调用中。

8.结构中的结构

相关文章

网友评论

      本文标题:第3周:结构类型——3.2 结构

      本文链接:https://www.haomeiwen.com/subject/xucsqxtx.html