你好, 欢迎回来｡
更多关于结构的信息, 特别是嵌套结构, 嵌套结构结构中的结构｡
就是这个意思｡
因此, 请参阅, 可让您定义本身包含其他结构做为其一或多个成员的结构｡
这是一个很好的概念｡
你可以在结构中有结构｡
因此, 您已经看到了如何将一年中的月份和日期按逻辑分组到一个名为date的结构中｡
我们一直坚持用这个日期的例子｡
那么, 如果我们想把时间, 小时, 分钟和秒, 组合成一个结构呢？
这似乎也会很有用｡
所以这里我们有一个叫做时间的结构, 它和今天非常相似｡
它包含三个要素｡
我们知道这个结构的名字是time, 因为它跟在struct关键字后面, 这是标记名｡
然后在花括号内, 我们定义了元素, 数据类型和变量名｡
现在我们知道, 如果需要, 我们还可以在其中放置一个数组｡
但是在这个例子中我们不需要数组, 我们只需要三个整数｡
我们以右大括号和分号结束该结构｡
不过, 那又怎么样呢？
在某些应用程序中, 您可能希望实际将时间中的日期组合在一起｡
这就说得通了, 对吧？
因为日期和时间是有逻辑的, 或者说是有逻辑的, 对吧？
它们是按逻辑分组的｡
因此, 您可以设置在特定日期发生的事件列表｡
所以这可能是一个非常有用的例子, 你需要使用嵌套结构｡
因此, 您可以方便地将日期和时间关联在一起｡
我们可以定义一个新的结构, 例如, 日期和时间｡
它将包含两个元素（日期和时间）作为其成员, 这两个元素都是结构｡
现在我们有了一个嵌套结构｡
我们有一个名为date和time的结构, 其中包含另外两个结构｡
语法中的类似内容与创建其他结构非常相似｡
这里唯一的区别是在实际的结构内部作为元素名称｡
您有struct关键字､ 结构的名称, 然后是变量名｡
在这个例子中, 我们创建了一个日期和时间结构体, 我们有两个结构体, 一个是日期类型, 一个是时间类型｡
状态和S时间两个变量｡
该结构的第一个成员是strike date类型, 称为SE Date｡
日期和时间结构的第二个成员是strike time类型, 称为se time｡
现在可以将变量定义为struct date和time类型｡
我们不需要为日期和时间创建单独的变量｡
我们可以创建一个结构, 该结构将同时存储日期和时间｡
我们会这样做｡
我们将使用一个强关键字, 指定结构的类型､ 日期和时间, 然后指定变量名｡
在本例中, 它们将存储事件｡
所以当我们想要访问嵌套结构中的内存时, 我们说event｡
同样, 语法非常简单｡
您所要做的就是像引用其他成员一样引用它｡
必须使用该成员选择运算符｡
所以会用它很多次｡
所以如果我们有一个名为event的结构, 我们想得到日期, 我们说events date,
因为它是日期和时间结构的成员.
现在, 如果你想再次引用一个州内的一个特定成员, 你可以使用句点文件, 通过数字名称,
将其附加在末尾｡
下面的语句将把event中包含的日期结构的月份设置为October, 并且将把time结构中包含的秒数加1｡
所以我们说event state, 然后是另一个点, 因为我们要访问状态变量的元素｡
我们要访问月份, 并将其赋值为第十个月｡
所以这里有很多点｡
所有这一切都是说你有一个名为event的结构体｡
因为我们之前的声明, 我们说它是类型､ 日期和时间｡
在里面有一个结构体, 它是一个日期结构体, 你要访问这个日期结构体的月份成员.
所以你说.
如果我们想把第二个增量改变一,
我们可以说plus, 我们可以使用预实现运算符plus+事件作为时间点秒｡
我们必须包含这两个点, 而秒是个整数, 所以它只需要加1.
非常直接｡
事件变量可以像普通结构一样初始化｡
如果要将变量event中的日期设置为2015年2月4日, 将时间设置为330, 则可以使用start date and time
event｡
你会像平常一样创建它｡
然后用花括号指定不同的结构体初始化成员.
在第一个花括号中, 我们将初始化日期, 我们将初始化月份为2月,
数据为1, 年份为2015年｡
然后我们在花括号的末尾加上一个逗号｡
然后是第二个, 看起来像是多维数组初始化｡
我们说时间等于330加0｡
3小时30分0秒｡
您可以使用成员名称和初始化, 就像所有其他初始化规则一样｡
这将是有益的, 因为您将不必指定顺序｡
在这里, 我们只是创建事件｡
然后在花括号内, 我们使用点｡
接线员｡
我们说月等于两天等于一年等于2015年｡
而那只会指定初始化的日期｡
如果我们想指定时间初始化, 我们只需要再次使用点来表示每个成员名称, 点, 点,
分钟, 我们可以改变顺序｡
对不对？
我们可以说点秒, SQL 0/1, 然后分钟等于30, 最后是三个B｡
顺序并不重要｡
最后我们用分号和卷曲符号结束｡
右, 花括号｡
既然我们知道可以有嵌套结构, 那么嵌套结构的数组呢？
现在我们真的进入正题了｡
是的, 有可能｡
您可以设置一个日期､ 时间和日期时间结构的数组, 其中日期和时间包含两个结构｡
就像其他普通语法一样｡
您必须使用这些方括号来指定数组的大小｡
当您宣告实际的结构名称时, 您必须指定date time型别的, 就像任何其他结构一样｡
数组事件声明为包含100个类型､ 结构､ 日期和时间元素｡
数组中包含的第四个日期和时间使用方括号内的常用下标sub three或index
three或下标three引用｡
所以要把数组中的第一个时间设置为中午, 你应该说event subzero, 点SW
time, 因为记住SW time指向时间结构体, 然后你必须访问时间结构体中的元素, 也就是hours｡
所以你用另一个点, 你说12｡
它看起来和前面的声明或者赋值语句非常相似, 但是它在方括号里有数组索引零｡
如果events不是数组, 而你只想访问时间的单一结构或小时结构, 你只需去掉括号｡
所以数组并不复杂｡
你只需要非常熟悉那些方括号和索引｡
给你
我们把时间设置为零事件零度以下｡
我们先设置第一个元素, 然后将秒设置为零.
现在如果我们想在结构中声明一个结构｡
可以在时间结构定义中定义日期结构｡
所以这是另一种灵活性｡
我们不需要在其他地方定义日期和时间结构｡
我们可以在日期和时间结构中定义这些结构｡
这是一个在时间结构中定义日期结构的例子｡
这里我们有一个嵌套的结构, 但我们实际上是在时间结构的定义中定义的｡
所以我们用struct time加上标记名, 然后在花括号内, 我们用struct date.
这是完全正确的｡
你也会注意到, 在结束分号之前的开始日期, 我们创建了一个名为DOB的变量｡
然后, 在我们创建了开始日期及其在变量DOB中的元素之后, 我们指定了时间开始的小时､
分钟和秒的元素｡
所以这是完全正确的｡
现在, 你可能会注意到, 这个生效日期的限制只会在这里用一个变量名DOB定义一次｡
您将无法在此之外的任何地方使用日期结构｡
除非您使用内部时间, 否则无法单独使用日期｡
所以date结构的声明被包含在time结构的作用域中｡
定义范围指的是你可以如何访问的东西, 因为日期结构是在时间的范围内｡
除非创建时间变量time struct变量, 否则无法访问它｡
你不能只说struct date我的变量名因为你没有权限｡
所以日期不存在于时间结构之外｡
不可能在时间结构外部声明日期变量｡
您可以使用日期结构变量的唯一时间是当您创建时间结构时, 它会自动为您创建一个DLB变量｡
这是有一定限制的, 但是如果你只需要日期和时间相关联,
那么你就可以使用这个方法｡
那你就这么做｡
所以另一个膝盖的概念, 一个在结构内部提供结构的概念, 非常, 非常基本｡
语法也很简单｡
您会很容易地习惯这些, 只要将数组加入至包含结构的结构即可｡
你只需要在索引中使用方括号｡
那里什么都没有改变｡
然后你可以稍微改变一下格式｡
如果您只需要局部嵌套结构, 则可以在另一个结构定义中定义它｡
因此, 我们在结构类型方面已经成为专家｡
我想谈谈最后几个概念, 特别是我想向你们展示如何在一个有用的结构中创建指针｡
然后我们会做一些挑战和练习, 这会让你们真正熟悉这个结构概念｡
-谢谢—谢谢