[Ag seinm ceoil] DOUG LLOYD: OK. Tá muid ag obair le slánuimhreacha, táimid ag ag obair le carachtair, tá muid ag obair flótaí, doubles, teaghráin, agus bools. Táimid tar éis go leor i bhfad go léir ídithe den [inaudible] cineálacha sin curtha ar fáil dúinn go léir chomh maith. Ach anois ba mhaith linn rud éigin níos mó a dhéanamh. Conas is féidir linn é sin a dhéanamh? Conas is féidir linn a chruthú cineálacha éagsúla sonraí? Is féidir linn é sin a úsáid a bhaint as struchtúir trí. Mar sin, ar chumas struchtúir dúinn a unify athróg de chineálacha éagsúla isteach i, cineál athróg nua amháin, ar féidir linn a shannadh a ainm chineál féin. Is é seo an láidir i ndáiríre rud a bheith in ann a dhéanamh, mar is féidir linn a ghrúpa anois gnéithe de chineálacha éagsúla sonraí le chéile go bhfuil nasc loighciúil. Táimid iontach ann é seo a dhéanamh le arrays saghas, ceart? Is féidir linn grúpa athróg den chineál céanna sonraí le chéile in aonad mór de chuimhne, le sraith. Ach ní raibh ar ár gcumas a mheascadh suas cineálacha éagsúla sonraí a chéile. Ní féidir linn, a rá, péire slánuimhir, agus carachtar, agus dúbailte gach i an rud céanna agus glaoch go aonad amháin. Ach le struchtúir, nó go minic dá ngairtear structs, is féidir linn i ndáiríre. Dá bhrí sin tá struchtúr saghas de cosúil le athróg Super. Tá sé ina athróg go bhfuil athróga eile taobh istigh de sé. Mar sin, tá anseo sampla de struchtúr an-simplí. Is é seo a bheadh ​​an error cuma buíochas a chruthú struchtúr le haghaidh gluaisteán. Anois, a ligean ar dul tríd an error anseo. Struct, go bhfuil an eochairfhocal a chuireann in iúl go bhfuil mé ag cruthú cineál nua sonraí anseo. Go háirithe, tá ainm an cineál sonraí ag dul a bheith carr struct, mar beidh orainn a fheiceáil. Ach is é seo an saghas rinn amach go dtí an tiomsaitheoir go bhfuil an mar ghrúpa na n-athróg go bhfuil dul a chur san áireamh mar chuid den chineál céanna i nóiméid. Carranna, ach an t-ainm an struchtúir. Arís, tá an cineál sonraí anseo ag dul a bheith carr struct, ní hamháin carr. Ach má tá tú different-- má chruthaíonn tú structs il sa chlár céanna, is gá duit a idirdhealú a dhéanamh idir struct agus struct. Carr Mar sin struct, d'fhéadfadh mé chomh maith mac léinn struct, mar shampla, ar an gclár céanna. Taobh istigh de na braces gcuach iad gach ceann de na réimsí mar a thugtar air, nó baill an struchtúir. Mar sin, cad iad cuid de na rudaí a a théann leis i gcarr? Bhuel, tá sé de ghnáth in aghaidh na bliana, tá ainm samhail, agus pláta ceadúnais, an odometer go bhfuil de ghnáth roinnt ar líon na míle ar sé, agus b'fhéidir an méid innill. Agus mar is féidir leat a fheiceáil, tá mé ag meascadh suas slánuimhreacha agus carachtair agus doubles. Tá siad ag dul go léir a bheith chuid den cineál nua sonraí. Ar deireadh, an rud deiridh a gá dom a dhéanamh, ná déan dearmad ar an Leathstad beag ag an deireadh. Tar éis dúinn chríochnú a shainmhíniú ar an struchtúr, ní mór dúinn a chur ar Leathstad ag an deireadh. Tá sé an-choitianta comhréire dhearmad, mar gheall ar le feidhm, mar shampla, a bheadh ​​agat ach brace curly oscailte, brace curly dhúnadh. Ní gá duit a chur ar Leathstad ag an deireadh sainmhíniú feidhme. Breathnaíonn sé seo cosúil le feidhm sainmhíniú, ach nach bhfuil sé, agus mar sin an Leathstad ann ach i gcuimhne go bhfuil tú Ní mór é a chur ann, mar gheall ar Beidh an tiomsaitheoir nó ní fhios cad atá le déanamh leis. Tá sé an earráid an-choitianta a dhéanamh de thaisme nuair tú ag struchtúir a shainiú ar dtús. OK. Mar sin, táimid a shainiú de ghnáth ár struchtúir ag an barr an-ár gclár toisc go bhfuil siad ag dul is dócha a bheidh le húsáid ag feidhmeanna éagsúla. Nílimid ag iarraidh a shainmhíniú a struct taobh istigh d'fheidhm, mar gheall ar ansin is féidir linn a only-- an raon feidhme an struchtúr i ndáiríre ach ann taobh istigh na feidhme sin. Ba mhaith linn ag iarraidh dócha struchtúr a shainmhíniú ionas gur féidir linn é a úsáid i feidhmeanna éagsúla, nó b'fhéidir i iolrach comhaid atá ceangailte le chéile a chruthú ar ár gclár aonair. Uaireanta freisin ina ionad de shainmhíniú ar an struchtúr ag an barr an-nuair a chuir tú do Áirítear punt agus sainmhíníonn do punt, mar shampla, d'fhéadfadh tú iad a chur i Comhaid ponc h ar leith, a bhfuil tú ansin punt Áirítear duit féin. Mar sin, ní mór dúinn struchtúir, ach anois ní mór dúinn a fháil taobh istigh acu. Conas is féidir linn a fháil taobh istigh de struchtúr rochtain na fo-athróg, na hathróga atá ann taobh istigh den struchtúr? Bhuel, ní mór dúinn rud ar a dtugtar an t-oibreoir ponc, a ligeann dúinn rochtain a fháil ar na réimsí an struchtúir. Mar sin, mar shampla, a ligean le rá Tá mé a dhearbhú cineál mo shonraí struchtúr áit éigin ag barr mo chlár, nó b'fhéidir i comhad ponc h a Tá mé punt san áireamh. Más mian liom ansin a chruthú nua athróg den chineál sonraí, is féidir liom a rá, carr struct, mo charr, Leathstad. Díreach mar d'fhéadfadh liom a rá int x, nó ainm téad leathstad. Is é an cineál sonraí a anseo carr struct, Is é an t-ainm ar an athróg mo charr, agus ansin is féidir liom a bhaint as an t-oibreoir ponc a rochtain a fháil ar na réimsí éagsúla de mo charr. Mar sin, is féidir liom a rá mo charr ionann ponc bhliain 2011. Sin breá breá. Bliain, más cuimhin leat Sainmhíníodh, mar réimse slánuimhir taobh istigh an carr struct Cineál sonraí. Mar sin, aon athróg na sonraí carr struct cineál, mar shampla mo charr, is féidir liom a rá mo charr ponc bliain ionann agus ansin a shannadh sé roinnt luach slánuimhir, 2011. Is ionann mo charr ponc pláta CS50. Mo chárta ponc odaiméadair ionann 50,505 leathstad. Gach ceann de na iad breá breá agus go bhfuil conas a rochtain a fháil ar an Réimsí an struchtúir. Struchtúir, áfach, nach gá a chruthú ar an chairn. Díreach cosúil aon athróg eile, táimid ag Is féidir iad a leithdháileadh dinimiciúil. Má táimid tar éis clár a d'fhéadfadh a a ghiniúint go leor struchtúir, níl a fhios againn cé mhéad táimid ag dul go dtí gá, ansin is gá dúinn a dinimiciúil na struchtúir a leithdháileadh mar ár gclár ag rith. Agus mar sin má táimid ag dul chun teacht ar an Réimsí de struchtúr sa chomhthéacs, chun cuimhne gur gá dúinn an chéad a téigh i an pointeoir leis an struchtúr, agus ansin uair amháin againn dereference téigh an pointeoir, ansin is féidir linn rochtain a fháil ar na réimsí. Má tá muid ach pointeoir leis an struchtúr, ní féidir linn a rá ach réimse pointeoir ponc ainm agus a fháil ar cad tá muid ag lorg. Níl an chéad chéim breise de dereferencing. Mar sin, a ligean ar rá go bhfuil in ionad an previous-- díreach cosúil leis an sampla roimhe seo, in ionad dhearbhú é ar an chairn, carr struct, mo carr, Leathstad, a rá liom carr struct, réalta, pointeoir chuig carr struct dtugtar mo charr, ionann méid malloc de ghluaisteán struct. Beidh méid na muid a figiúr amach cé mhéad bytes thógann do chineál nua sonraí suas. Ní gá duit gá go ach úsáid a bhaint as méid, leithead, slánuimhir, nó Char, nó aon an-tógtha i cineálacha sonraí. Is é an tiomsaitheoir cliste go leor chun an figiúr amach cé mhéad bytes is gá do réir do struchtúr nua. Mar sin, mé a malloc mé féin aonad de chuimhne mór go leor chun a shealbhú carr struct, agus a fháil mé pointeoir ais leis bloc de chuimhne, agus go pointeoir a shanntar mo charr. Anois, más mian liom a rochtain réimsí mo charr, An chéad téigh i mo charr ag baint úsáide as mé an t-oibreoir téigh i, réalta go atá feicthe againn ó na leideanna físeáin, agus ansin tar éis dom téigh i, ansin is féidir liom a bhaint as an t-oibreoir ponc a rochtain a fháil ar na réimsí éagsúla de mo charr. Star mo charr ponc ionann bhliain 2011. Bheadh ​​sin an éifeacht ba mhaith linn sa chás seo, toisc go bhfuil muid dinimiciúil leithdháileadh mo charr. Sin de chineál ar annoying, áfach, ceart? Níl próiseas 2-chéim anois. Anois, ní mór dúinn a dereference-- ní mór dúinn a oibreoir réalta, agus ní mór dúinn oibreoir ponc. Agus mar a d'fhéadfadh a bheith ag súil, mar gheall ar Ríomhchláraitheoirí C breá bhealaí níos giorra chun rudaí a dhéanamh, tá bhealach níos giorra a dhéanamh. Tá oibreoir eile ar a dtugtar arrow, a dhéanann an próiseas seo i bhfad níos éasca. Is é an bealach a oibríonn tsaighead ar dtús dereferences an pointeoir ar an taobh clé taobh an oibreora, agus ansin, tar éis dereferenced an pointeoir ar an taobh clé, rochtain sé an réimse ar an gceart. Agus mar sin bhí againn roimhe sin saghas Star mo charr dot léir stuif seo, cosúil le go raibh a lán ar siúl ann. Ach cad is féidir linn a dhéanamh ina ionad sin is this-- is ionann mo bhliain arrow carr 2011. Arís, tá ag tarlú anseo? Gcéad dul síos, tá mé ag dereferencing mo charr. Cé acu arís, tá pointeoir anseo. Ansin, tar éis dereferenced mo charr, mé Is féidir rochtain a fháil ar ansin na réimsí bliain, pláta, agus odaiméadair díreach mar a thiocfadh liom a bheith ar dtús roimh réalta a úsáidtear chun téigh i mo charr, agus ponc chun teacht ar an réimse. Sin, is féidir leat a bheith ar struchtúir, tú Is féidir go mbeadh leideanna struchtúir, agus tá tú ar bhealaí chun rochtain na réimsí na struchtúir, cibé an bhfuil tú leideanna a iad nó na hathróga iad féin. Ponc nó arrow, ag brath ar conas dearbhaíodh an athróg. Tá mé Doug Lloyd, is é seo CS50.