[Ag seinm ceoil] DOUG LLOYD: Leideanna, tá muid anseo. Tá sé seo ag dul dócha a a bheith ar an topaic is deacra go labhairt linn faoi i CS50. Agus má tá tú ag léamh rud ar bith faoi leideanna sula fhéadfadh tú a bheith beagán imeaglaithe ag dul isteach sa físeán seo. Tá sé fíor na leideanna a dhéanann deis a thabhairt duit ar an gcumas a scriú suas b'fhéidir dona go leor nuair a bhíonn tú ag obair le hathróga, agus sonraí, agus is cúis le do chlár a tuairteála. Ach tá siad iarbhír úsáideach i ndáiríre agus lig siad dúinn ar bhealach gur mór chun sonraí a pas a fháil ar ais agus amach idir feidhmeanna, go bhfuil muid ar shlí eile in ann a dhéanamh. Agus mar sin cad againn i ndáiríre ag iarraidh a dhéanamh anseo é traein leat a bheith acu smacht pointeoir maith, mar sin gur féidir leat leideanna a úsáid go héifeachtach a dhéanamh do chláir go bhfuil i bhfad níos fearr. Mar a dúirt mé leideanna a thabhairt dúinn difriúil bhealach chun sonraí a pas a fháil idir feidhmeanna. Anois, má tá tú chun cuimhne ó físeán roimhe sin, nuair a bhí muid ag caint faoi raon feidhme athraitheach, luaigh mé go léir na sonraí a pas againn idir feidhmeanna i C rith ag luach. Agus ní féidir liom a bheith in úsáid go téarma, cad is brí mé ann ná go bhfuil muid ag dul cóipeanna de shonraí. Nuair a théann muid athróg le feidhm, nach bhfuil muid ag dul i ndáiríre an athróg don fheidhm, ceart? Táimid ag dul cóip de sonraí sin don fheidhm. Dhéanann an fheidhm cad a bheidh sé agus ríomhann sé roinnt luach, agus b'fhéidir úsáid againn go luach nuair a thugann sé ar ais. Bhí eisceacht amháin an riail seo a rith de réir luacha, agus beidh muid ag teacht ar ais leis an méid sin Is beag níos déanaí sa físeán seo. Má úsáidimid leideanna ionad ag baint úsáide as athróg, nó seachas úsáid a bhaint na hathróga iad féin nó cóipeanna de na hathróga, Is féidir linn a pas a fháil anois ar na hathróga timpeall idir feidhmeanna ar bhealach difriúil. Ciallaíonn sé seo má dhéanaimid athrú ar feidhm amháin, Beidh an t-athrú a chur i ndáiríre bhfeidhm i feidhm éagsúla. Arís, is é an rud go ní raibh muid ábalta a dhéanamh roimhe sin, agus má tá tú iarracht riamh a mhalartú an luach de dhá athróg i feidhm, tú faoi deara an fhadhb seo saghas creeping suas, ceart? Más mian linn a mhalartú X agus Y, agus táimid ag dóibh pas a fháil le feidhm a dtugtar babhtála, taobh istigh den fheidhm babhtála an hathróga a dhéanamh luachanna malairte. Thiocfaidh chun bheith ar cheann dhá, dhá thiocfaidh amháin, ach ní bhfuil againn i ndáiríre athrú rud ar bith sa bunaidh fheidhm, sa té atá ag glaoch. Toisc nach féidir linn, tá muid ach ag obair le cóipeanna díobh. Le leideanna áfach, is féidir linn pas a fháil i ndáiríre X agus Y le feidhm. Is féidir an fheidhm a dhéanamh rud éigin leo. Agus na luachanna athróg Is féidir a athrú i ndáiríre. Mar sin, go leor athrú ár gcumas a bheith ag obair le sonraí. Sula Léim muid isteach leideanna, Sílim go bhfuil sé fiú ag cur ar feadh cúpla nóiméad a dul ar ais go Basics anseo. Agus ag féachaint ar an gcaoi oibreacha gcuimhne ríomhaire mar gheall ar na dhá ábhar ag dul a bheith i ndáiríre deas idirghaolmhara. Mar atá a fhios agat is dócha, ar do chóras ríomhaireachta tá tú thiomáint crua nó b'fhéidir tiomáint stáit soladach, de chineál éigin suíomh stórála comhad. Tá sé de ghnáth áit éigin sa gcomharsanacht 250 ghigibheart go b'fhéidir cúpla terabytes anois. Agus tá sé i gcás gach ceann de do Comhaid cónaí ar deireadh thiar, fiú amháin nuair a bhfuil do ríomhaire t amach, is féidir leat dul ar ais ar agus beidh tú go bhfuil do chuid comhad ann arís nuair Atosaigh tú do chóras. Ach thiomáineann diosca, cosúil le tiomáint dhiosca crua, an HDD, nó a thiomáint stáit soladach, SSD, Tá spás stórála amháin. Ní féidir linn aon rud a dhéanamh i ndáiríre le na sonraí atá i dhiosca crua, nó i tiomáint stáit soladach. D'fhonn a athrú i ndáiríre sonraí nó bhogadh thart, ní mór dúinn a bhogadh go dtí RAM, cuimhne rochtain randamach. Anois RAM, tá a lán níos lú de i do ríomhaire. B'fhéidir go mbeadh ort áit éigin sa gcomharsanacht 512 meigibheart má tá tú ar ríomhaire níos sine, go b'fhéidir dhá, ceithre, ocht, 16, b'fhéidir fiú beag níos mó ghigibheart, RAM. Mar sin tá go bhfuil i bhfad níos lú, ach sin gcás ina gcomhlíontar na sonraí so-ghalaithe ann. Sin an áit is féidir linn rudaí a athrú. Ach nuair a muid ag dul ár ríomhaire amach, gach ceann de na sonraí i RAM scriosta. Mar sin, sin an fáth gá dúinn a bheith acu dhiosca crua chun suíomh níos buaine de, ionas go ordú- sé go mbeadh sé a bheith go dona má gach uair táimid ag iompaigh ár ríomhaire as, gach Bhí scriosta an comhad inár gcóras. Mar sin, táimid ag obair taobh istigh de RAM. Agus gach uair tá muid ag caint faoi chuimhne, go leor i bhfad, i CS50, muid ag caint faoi RAM, ní dhiosca crua. Mar sin, rudaí nuair muid ag bogadh i gcuimhne, a thógann sé suas le méid áirithe de spás. Gach ceann de na cineálacha sonraí a tá muid ag obair le i mbun éagsúla méideanna de spás i RAM. Mar sin, gach uair a chruthú duit slánuimhir athraitheach, ceithre bytes de chuimhne i leataobh i RAM mar sin leat Is féidir le bheith ag obair leis an slánuimhir. Is féidir leat a dhearbhú go bhfuil an slánuimhir, athrú, a shannadh sé le luach 10 incrimintithe trí cheann amháin, mar sin de agus mar sin de. Gach gur gá a tharlóidh i RAM, agus gheobhaidh tú ceithre bytes a bheith ag obair leis ar gach slánuimhir a chruthú duit. Gach carachtar tú chruthú Faigheann beart amháin. Sin díreach cé mhéad spás is gá a stóráil ar charachtar. Gach snámhphointe, fíor uimhir faigheann, ceithre bytes ach amháin má tá sé ina dúbailte cruinneas snámhphointe uimhir, a ligeann duit a tá digití níos cruinne nó níos mó tar éis an pointe deachúil gan chailliúint cruinneas, a chur suas ocht bytes de chuimhne. Longs fada, slánuimhreacha gur mór, freisin a chur suas ocht bytes de chuimhne. Cé mhéad beart de chuimhne dhéanann teaghráin a chur suas? Bhuel a ligean ar chur ar biorán i an cheist sin do anois, ach beidh muid ag teacht ar ais dó. Mar sin, ar ais go dtí an smaoineamh seo de chuimhne mar sraith mór de chealla beart-iarrachtaí. Sin i ndáiríre go léir go bhfuil sé, tá sé ach raon ollmhór de chealla, díreach mar aon sraith eile a bhfuil tú eolach agus a fheiceáil, ach amháin gach gné Tá beart amháin ar leithead. Agus díreach cosúil le sraith, Tá gach gné seoladh. Gach gné de sraith Tá innéacs, agus táimid ag Is féidir úsáid a bhaint as go innéacs sin a dhéanamh mar a thugtar air rochtain randamach ar an eagar. Nach bhfuil againn chun tús a chur ag tús an eagar, iterate trí gach eilimint amháin de, chun teacht ar cad tá muid ag lorg. Is féidir linn a rá go díreach, ba mhaith liom a fháil chun an 15ú eilimint nó an eilimint 100. Agus is féidir leat pas a fháil ach i líon sin agus a fháil ar an luach bhfuil tú ag lorg. Mar an gcéanna gach suíomh i gcuimhne Tá seoladh. Mar sin, d'fhéadfadh do chuimhne cuma rud éigin mar seo. Seo smután an-bheag de chuimhne, tá sé seo 20 bytes de chuimhne. An chéad 20 bytes mar gheall ar mo aghaidh ar ann ag bun Tá 0, 1, 2, 3, agus mar sin ar an bealach ar fad suas go dtí 19. Agus nuair Dearbhaím athróg agus nuair a thosóidh mé a bheith ag obair leo, tá an córas ag dul a shocrú ar leataobh roinnt spáis dom sa chuimhne a bheith ag obair le mo athróg. Mar sin, d'fhéadfadh liom a rá, char c ionann caipitil H. Agus cad atá ar siúl le tarlú? Bhuel tá an córas ag dul go dtí ar leataobh go dtí mé beart amháin. Sa chás seo, roghnaigh sé uimhir beart ceithre, an beart ag seoladh ceithre, agus tá sé ag dul a stóráil ar an litir H chaipitil i ann dom. Má rá liom ansin luas slánuimhir ionann teorainn 65, tá sé ag dul a chur ar ceal ceithre bytes de chuimhne dom. Agus tá sé ag dul chun cóir leighis dóibh siúd ceithre bytes mar aonad amháin mar gheall ar cad tá muid ag obair le Is slánuimhir anseo. Agus tá sé ag dul a stóráil 65 i ann. Anois cheana Tá mé cineál ag rá leat beagán de bréag, ceart, mar tá a fhios againn go ríomhairí ag obair i dénártha. Níl siad a thuiscint gá go cad is H caipitil nó cad is 65, siad ach tuiscint a fháil ar dénártha, nialais agus cinn. Agus mar sin i ndáiríre cad táimid ag a stóráil i ann nach bhfuil an litir H agus an uimhir 65, ach na huiríll dénártha de, a bhfuil cuma a rud beag mar seo. Agus go háirithe sa comhthéacs an athróg slánuimhir, níl sé ag dul a spit ach é i, níl sé ag dul a chóireáil sé mar cheann ceithre smután beart gá, tá sé ag dul i ndáiríre a chóireáil sé mar cheithre cheann smután beart, a d'fhéadfadh a cuma rud éigin mar seo. Agus fiú nach bhfuil sé seo go hiomlán fíor ach an oiread, mar gheall ar rud éigin a dtugtar ar endianness, nach bhfuil muid ag dul a fháil isteach anois, ach má tá tú fiosrach faoi, Is féidir leat léamh suas ar beag agus endianness mór. Ach ar mhaithe leis an argóint seo, ar mhaithe le físeán seo, a ligean ar glacadh ach go bhfuil, i Go deimhin, conas an uimhir 65 a bheadh a léiriú i cuimhne ar gach córas, cé nach bhfuil sé fíor go hiomlán. Ach a ligean ar a fháil ach i ndáiríre réidh ar fad dénártha hiomlán, agus díreach smaoineamh ar mar a H agus 65, tá sé i bhfad níos éasca smaoineamh ar sé cosúil gur mar bheith ag an duine. Ceart go leor, mar sin is cosúil freisin b'fhéidir beag randamach go I've- mo chóras Ní raibh a thabhairt dom bytes 5, 6, 7, agus 8 a stóráil an slánuimhir. Níl cúis le sin, freisin, a ní beidh muid ag dul isteach anois, ach is leor sé sin le rá go bhfuil an méid an Tá ríomhaire ag déanamh anseo Is dócha go bhfuil bogadh go maith ar a chuid. Chun nach a thabhairt dom chuimhne go gá go ar ais go dtí ar ais. Cé go bhfuil sé ag dul a dhéanamh air anois más mian liom a fháil teaghrán eile, ar a dtugtar sloinne, agus ba mhaith liom a chur Lloyd i ann. Tá mé ag dul go mór a d'oirfeadh amháin carachtar, gach litir sin atá dul chun a cheangal ar cheann carachtar, bheart ar cheann de chuimhne. Mar sin, má raibh mé a chur ar mo sraith Lloyd isteach mar seo Tá mé maith go leor chun dul, ceart? Cad atá ar iarraidh? Cuimhnigh go bhfuil gach teaghrán a mbímid ag obair leis i chríochnaíonn C le cúlslais náid, agus ní féidir linn a fhágáil ar lár go anseo, ach an oiread. Ní mór dúinn a chur ar leataobh beart amháin na cuimhne de bheith i seilbh mar sin againn Tá a fhios nuair a tá ár teaghrán dar críoch. Mar sin, arís an socrú seo ar an mbealach rudaí a bheith i láthair d'fhéadfadh cuimhne bheith beagán randamach, ach tá sé i ndáiríre conas córais is go bhfuil siad ceaptha. Chun iad a líne suas ar iolraithe de cheithre, ar chúiseanna arís nach mór dúinn a dul isteach ceart anois. Ach seo, agus mar sin is leor a rá go tar éis na trí líne de chód, is é seo cad a d'fhéadfadh chuimhne cuma mhaith. Más gá dom áiteanna cuimhne 4, 8, agus 12 de bheith i seilbh mo chuid sonraí, is é seo cad a d'fhéadfadh mo chuimhne cuma mhaith. Agus a bheith díreach go háirithe pedantic anseo, nuair muid ag caint faoi chuimhne seoltaí muid de ghnáth é sin a úsáid a bhaint as nodaireachtaí heicsidheachúlach. Mar sin cén fáth nach bhfuil muid ag a thiontú gach ceann de na ó deachúil go nodaireacht hexadecimal ach toisc go bhfuil go ginearálta conas tagairt muid go dtí chuimhne. Mar sin, in ionad iad a 0 trí 19, is é an méid atá againn náid x náid trí náid x1 trí. Sin iad na 20 bytes na cuimhne go bhfuil muid Tá nó tá muid ag féachaint ar an íomhá seo sa ar dheis anseo. Mar sin, gach ceann de sin á rá, a ligean ar a céim amach ó chuimhne le haghaidh an dara agus ar ais go dtí leideanna. Seo é an ceann is tábhachtaí rud a mheabhrú mar a thosaíonn muid ag obair le leideanna. Tá pointeoir rud ar bith níos mó ná seoladh. Feicfidh mé a rá arís mar gheall ar tá sé sin tábhachtach, Is pointeoir rud ar bith níos mó ná seoladh. Tá leideanna seoltaí chuig ionaid i gcuimhne áit a bhfuil cónaí athróg. A fhios agam go mbeidh sé súil go dtosnódh a beag beagán níos éasca a bheith ag obair leo. Rud eile is maith liom a dhéanamh ná a bheith acu a shórtáil de léaráidí a ionadaíonn amhairc cad atá ag tarlú le línte éagsúla de chód. Agus beidh orainn é seo a dhéanamh ar feadh cúpla na n-amanna i leideanna, agus nuair a labhairt linn faoi dinimiciúil leithdháileadh cuimhne chomh maith. Mar is dóigh liom go bhfuil na léaráidí Is féidir a bheith go háirithe cabhrach. Mar sin, má rá liom, mar shampla, slánuimhir k i mo cód, cad ag tarlú? Bhuel tá ag tarlú go bunúsach é Tá mé ag dul cuimhne ar leataobh le haghaidh dom, ach ní maith liom fiú a smaoineamh air mar sin, mé buíochas a smaoineamh air cosúil le bosca. Tá mé bosca agus tá sé daite glas mar gheall mé Is féidir le slánuimhreacha a chur i mboscaí glas. Má bhí sé ina charachtar I D'fhéadfadh go mbeadh bosca gorm. Ach a rá liom i gcónaí, má tá mé ag cruthú bosca gur féidir slánuimhreacha a shealbhú Tá go bosca daite glas. Agus a ghlacadh mé marcóir buan agus mé á scríobh k ar an taobh de. Mar sin, tá mé bosca a dtugtar k, inar féidir liom a chur slánuimhreacha. Mar sin, nuair a rá liom slánuimhir k, go bhfuil cad a tharlaíonn i mo cheann. Má rá liom ionann k cúig, cad tá mé ag déanamh? Bhuel, tá mé ag cur cúig sa bhosca, ceart. Tá sé seo deas simplí, más rud é Rá liom slánuimhir k, a chruthú bosca a dtugtar k. Má rá liom ionann k 5, a chur cúig isteach sa bhosca. Tá súil againn nach bhfuil go bhfad ró-de léim. Seo nuair a théann rudaí a suimiúil beag cé. Má rá liom slánuimhir * pk, go maith fiú amháin más rud é nach féidir liom fhios cad a chiallaíonn sé seo gá go, é a fuair go soiléir rud éigin a dhéanamh leis slánuimhir. Mar sin, tá mé ag dul a dath sa bhosca seo glas-ish, Tá a fhios agam é a fuair rud éigin a dhéanamh leis slánuimhir, ach nach bhfuil sé slánuimhir féin, mar tá sé ina réalta slánuimhir. Tá rud éigin beagán éagsúla mar gheall air. Mar sin, slánuimhir ar gceist, ach seachas sin tá sé Ní ró-éagsúil ó cad a bhí muid ag caint faoi. Tá sé ina bosca, a fuair lipéad, tá sé ag caitheamh le pk lipéad, agus tá sé in ann ghabháltais réaltaí slánuimhir, is cuma cad iad na. Tá siad rud éigin a dhéanamh le slánuimhreacha, go soiléir. Seo an líne dheireanach cé. Má rá liom pk = & k, whoa, cad a tharla go díreach, ceart? Mar sin, an uimhir randamach, is cosúil gcruthaíonn sé randamach uimhir, faigheann thrown isteach sa bhosca ann. Gach go bhfuil é, pk Faigheann an seoladh k. Mar sin, tá mé ag sticking áit a bhfuil cónaí k i gcuimhne, a seoladh, seoladh a bytes. Gach Tá mé ag déanamh go bhfuil mé ag rá is é sin luach an méid a bhfuil mé ag dul a chur taobh istigh de mo bhosca ar a dtugtar pk. Agus mar go bhfuil na rudaí seo leideanna, agus mar gheall ar lorg ag teaghrán cosúil le nialas x ocht náid c seacht ceathair ocht dhá nialas is dócha gan bhrí an-. Nuair a visualize go ginearálta leideanna, linn a dhéanamh i ndáiríre sa chaoi is leideanna. Páirc thugann dúinn an t-eolas ní mór dúinn k a fháil i gcuimhne. Mar sin, tá go bunúsach pk saighead ann. Agus má siúl againn an fad den arrow, a shamhlú tá sé rud éigin is féidir leat siúl ar, má táimid siúl ar feadh an fad an arrow, ag barr an-an arrow, táimid ag Beidh teacht ar an suíomh i gcuimhne áit a bhfuil cónaí k. Agus sin i ndáiríre tábhachtach mar aon uair tá a fhios againn áit a bhfuil cónaí k, is féidir linn tús a bheith ag obair leis na sonraí taobh istigh den suíomh chuimhne. Cé tá muid ag fáil teeny beagán chun tosaigh ar dúinn féin do anois. Mar sin, cad is pointeoir? Is pointeoir ítim sonraí a bhfuil a Is é luach ar ainm na cuimhne. Go raibh go nialas x ocht náid stuif dul ar aghaidh, go raibh ar ainm na cuimhne. Ba é sin suíomh i gcuimhne. Agus an cineál pointeoir cur síos ar an chineál sonraí a beidh tú ag seoladh sin chuimhne. Mar sin, níl an chuid ceart réalta slánuimhir. Má leanann mé go arrow, tá sé dul i gceannas ar dom ar an suíomh. Agus sin suíomh, cad a dhéanfaidh mé beidh teacht ann i mo mar shampla, Is bosca daite glas. Tá sé an slánuimhir, go bhfuil an méid mé Beidh teacht má théann mé go dtí an seoladh sin. An cineál sonraí de pointeoir síos ar a gheobhaidh tú ag an seoladh sin chuimhne. Mar sin, anseo an rud really cool cé. Ar chumas leideanna dúinn chun pas a fháil athróg idir feidhmeanna. Agus pas a fháil i ndáiríre athróg agus ní cóipeanna díobh pas a fháil. Toisc má tá a fhios againn go díreach i gcás ina i gcuimhne a fháil athróg, ní mór dúinn a dhéanamh cóip de é, is féidir linn dul díreach chun an suíomh sin agus ag obair leis an athróg. Mar sin, i leideanna bunúsach saghas de dhéanamh timpeallacht ríomhaireachta a lán níos mó cosúil leis an saol fíor, ar dheis. Mar sin tá anseo analaí. Ligean le rá go bhfuil mé leabhar nótaí, ceart, agus tá sé lán de nótaí. Agus ba mhaith liom leat chun cothrom le dáta é. You are a fheidhm a nuashonruithe nótaí, ceart. Ar an mbealach atá againn ag obair go dtí seo, cad tharlaíonn go bhfuil tú a chur ar mo leabhar nótaí a bheidh, beidh tú ag dul go dtí an siopa chóip, mbainfidh tú a dhéanamh cóip Xerox de gach leathanach den leabhar nótaí. Feicfidh tú a fhágáil ar mo leabhar nótaí ar ais ar mo dheasc nuair atá tú ag déanamh, beidh tú ag dul agus tras amach rudaí i mo leabhar nótaí atá as dáta nó mícheart, agus ansin beidh tú pas a fháil ar ais go dtí dom an chairn de leathanaigh Xerox go bhfuil macasamhail de mo leabhar nótaí le na hathruithe go atá tú a dhéanamh air. Agus ag an bpointe sin, tá sé suas chun dom mar an fheidhm glaoch, mar an té atá ag glaoch, chun cinneadh a ghlacadh do chuid nótaí agus iad a chomhtháthú ar ais i mo leabhar nótaí. Mar sin níl a lán de na céimeanna i gceist anseo, ceart. Cosúil nach mbeadh sé a bheith níos fearr má deir mé díreach tar éis, hug is féidir, leat thabhairt cothrom le dáta mo leabhar nótaí do dom, lámh tú mo leabhar nótaí, agus a ghlacann tú rudaí agus literally trasna orthu amach agus mo nótaí nuashonrú i mo leabhar nótaí. Agus ansin a thabhairt dom mo leabhar nótaí ar ais. Sin de chineál ar cad leideanna ar ár gcumas a dhéanamh, a dhéanann siad timpeallacht seo a lán níos mó cosúil le conas a oibríonn muid i ndáiríre. Gach ceart ionas go bhfuil an méid Is pointeoir, a ligean ar labhairt faoi ​​conas a oibríonn leideanna i C, agus conas is féidir linn tús a chur ag obair leo. Mar sin níl pointeoir an-simplí i C ar a dtugtar an pointeoir null. Na pointí pointeoir null le rud ar bith. Dealraíonn sé seo is dócha mar tá sé i ndáiríre ní rud an-úsáideach, ach de réir mar beidh orainn a fheiceáil ar beagán níos déanaí ar, ar an bhfíric go bhfuil an pointeoir null iarbhír Is féidir teacht i ndáiríre i handy. Agus aon uair a chruthú duit pointeoir, agus nach bhfuil tú ag a leagtar ar a immediately- luach sampla de a leagan síos a luach láithreach a bheith ina sleamhnáin lánúin ar ais nuair a dúirt mé ionann pk & k, Faigheann pk k ar seoladh, mar beidh orainn a fheiceáil cad a chiallaíonn go, beidh orainn a fheiceáil conas chun cód go shortly- más rud é nach bhfuil muid a leagtar a luach chun rud éigin brí láithreach, ba chóir duit i gcónaí leagtar do pointeoir a chur in iúl a margadh saothair. Ba chóir duit a leag sé a chur in iúl le rud ar bith. Sin an-difriúil ná ach ag fágáil an luach mar go bhfuil sé agus ansin dhearbhú pointeoir agus díreach ag glacadh leis tá sé null toisc go annamh fíor. Mar sin, ba chóir duit a leagtar i gcónaí an luach a bhaineann le pointeoir a margadh saothair mura bhfuil tú a leagtar a luach chun rud éigin fiúntach láithreach. Is féidir leat seiceáil an bhfuil luach pointeoir ar Is null baint úsáide as an t-oibreoir comhionannais (==), Ach is mian leat a chur i gcomparáid aon slánuimhir luachanna nó luachanna carachtar ag baint úsáide as (==) freisin. Tá sé ina saghas speisialta tairiseach luach gur féidir leat é a úsáid chun tástáil. Ionas go raibh an-simplí pointeoir, an pointeoir null. Bealach eile a chruthú Is pointeoir a bhaint as an seoladh an athróg tú tar éis a cruthaíodh cheana féin, agus a dhéanann tú seo le an & Seoladh oibreoir eastóscadh. A atá feicthe againn roimhe cheana sa chéad sampla léaráid Léirigh mé. Mar sin, má tá x athróg a tá muid cruthaithe cheana den chineál slánuimhir, ansin tá & x ina pointeoir chuig slánuimhir. & x é- cuimhnigh, & ag dul a bhaint an seoladh an rud ar an gceart. Agus ós rud é pointeoir ach seoladh, ná & x Is pointeoir chuig slánuimhir Is é luach a bhfuil a áit i gcuimhne x saol. Tá sé an x ​​ar seoladh. Mar sin, tá & x an seoladh x. A ligean ar dhéanfaidh an taisceadh sin amháin thuilleadh agus ceangal le rud éigin Thagair mé i físeán roimh ré. Má tá arr le sraith de doubles, ansin & é i an lúibín cearnach arr pointeoir le dúbailte. OK. arr lúibín cearnach i, más rud é Is arr le sraith de doubles, ansin arr lúibín cearnach i an eilimint i-ú den eagar, agus & arr lúibín cearnach i gcás ina i cuimhne ann an eilimint i-ú de arr. Mar sin, cad é an impleacht anseo? Ainm eagair, an impleacht den rud ar fad, ná go bhfuil ainm le sraith ar i ndáiríre é féin pointeoir. Tá tú ag obair le leideanna go léir chomh maith gach uair go atá tú ag úsáid le sraith. Cuimhnigh as an sampla ar raon feidhme athróg, gar do dheireadh an físeán láthair mé sampla áit a bhfuil muid feidhm ar a dtugtar slánuimhir leagan síos agus fheidhm a dtugtar eagar a leagan síos. Agus do dúshlán chun a chinneadh cibé acu atá nó nach ea, nó cad é an luachanna a chló muid amach an deireadh na feidhme, ag deireadh an príomhchlár. Má tá tú chun cuimhne ón sampla nó má tá tú ag faire ar an físeán, tá a fhios agat go bhfuil nuair a duit-an glaoch chun slánuimhir a leagtar a dhéanann go héifeachtach rud ar bith. Ach an glaoch chun a dhéanann eagar a leagan síos. Agus mé saghas glossed níos mó ná cén fáth go raibh an cás ag an am. Dúirt mé díreach tar éis, go maith tá sé le sraith, tá sé speisialta, tá a fhios agat, níl cúis. Is é an chúis go bhfuil sraith ar Is é ainm ndáiríre ach pointeoir, agus níl seo speisialta cearnach lúibín error go rudaí a dhéanamh ar a lán níos deise a bheith ag obair leis. Agus a dhéanann siad an smaoineamh maidir le pointeoir a lán níos lú imeaglaithe, agus sin an fáth a bhfuil siad saghas de láthair an mbealach. Ach i ndáiríre tá arrays ach leideanna. Agus sin an fáth nuair a muid rinne athrú ar an eagar, nuair a rith muid le sraith mar pharaiméadar le feidhm nó mar argóint le feidhm, an t-ábhar ar an eagar athrú i ndáiríre i dá an callee agus sa té atá ag glaoch. A do gach cineál eile de Ní raibh athróg chonaic muid an cás. Mar sin, go díreach rud éigin a choinneáil i aigne nuair a bhíonn tú ag obair le leideanna, is é sin an t-ainm ar sraith iarbhír pointeoir go dtí an chéad eilimint den eagar. OK mar sin anois ní mór dúinn go léir fíricí, a ligean ar a choinneáil ag dul, ceart. Cén fáth a bhfuil muid ag cúram faoi i gcás ina bhfuil cónaí ar rud éigin. Bhuel mar a dúirt mé, tá sé deas úsáideach a fhios áit a bhfuil cónaí rud éigin ionas gur féidir leat dul ann agus é a athrú. Oibriú le sé agus ar ndóigh, tá an rud go bhfuil tú ag iarraidh a dhéanamh chuige sin a ghlacadh athraitheach, agus ní éifeacht ar roinnt cóip de. Seo ar a dtugtar dereferencing. Téimid go dtí an tagairt agus athraíonn muid an luach ann. Mar sin, má táimid tar éis pointeoir agus tá sé ar a dtugtar pc, agus pointí sé le carachtar, ansin is féidir linn a rá go bhfuil * ríomhaire agus * pc an ainm cad beidh muid ag teacht má théann muid chuig an seoladh ríomhaire. Cad beidh muid ag teacht go bhfuil carachtar agus * Tá pc conas a tharchur muid go dtí na sonraí ag an suíomh. Mar sin, d'fhéadfadh muid a rá rud éigin cosúil * pc = D nó rud éigin mar sin, agus ciallaíonn sin go bhfuil cuma cén a bhí ag seoladh chuimhne ríomhaire, Bhí cuma cén carachtar roimhe ann, mar atá anois D, má rá táimid ag * ríomhaire = D. Seo muid arís leis roinnt C stuif aisteach, ceart. Mar sin, againn le feiceáil * roimhe mar ar bhealach chuid den chineál sonraí, agus anois tá sé á úsáid i comhthéacs beagán difriúil rochtain a fháil ar na sonraí ag suíomh. Tá a fhios agam tá sé ina beag mearbhall agus go ndáiríre mar chuid de seo ar fad cosúil le, cén fáth go bhfuil leideanna seo miotaseolaíocht timpeall orthu a bheith chomh casta, Is de chineál ar fadhb ar chomhréir, go hionraic. Ach tá * a úsáidtear sa dá gcomhthéacsanna, araon mar chuid den ainm chineál, agus beidh orainn a fheiceáil ar beag rud éigin níos déanaí éigin eile, freisin. Agus is é anois an oibreoir téigh i. Mar sin, téann sé chun an tagairt, rochtain sé na sonraí ag an suíomh ar an pointeoir, agus is féidir leat a ionramháil air ar toil. Anois tá sé seo an-chosúil leis cuairt a thabhairt ar do chomharsa, ar dheis. Má tá a fhios agat cad do Cónaíonn chomharsa, tá tú Ní crochta amach le do chomharsa. Tá a fhios agat tú ag tarlú a eolas i gcás ina gcónaíonn siad, ach ní chiallaíonn go bhfuil ag toisc go bhfuil eolas sin tá tú ag idirghníomhú leo. Más mian leat chun idirghníomhú leo, tá tú chun dul go dtí a dteach, tá tú chun dul go dtí an áit ina gcónaíonn siad. Agus nuair a dhéanann tú sin, ansin is féidir leat idirghníomhú leo díreach cosúil gur mhaith tú ag iarraidh a. Agus mar an gcéanna leis na hathróga, ní mór duit dul chuig a seoladh más mian leat chun idirghníomhú leo, Ní féidir a fhios agat ach an seoladh. Agus is é an bealach is a théann tú chuig an seoladh *, an t-oibreoir téigh i a úsáid. Cad a cheapann tú a tharlaíonn má iarracht muid agus téigh i Is pointeoir a bhfuil a luach null? Thabhairt chun cuimhne go bhfuil an null pointí pointeoir le rud ar bith. Mar sin, má tá tú iarracht a dhéanamh agus téigh i rud ar bith nó téigh go dtí an seoladh rud ar bith, cad a tharlaíonn cheapann tú? Deighilt go maith má guessed tú locht, gur mhaith leat a bheith ceart. Má tá tú iarracht a dhéanamh agus téigh i pointeoir null, tú ag fulaingt le deighilt locht. Ach go fóill, Ní raibh mé in iúl duit, go más rud é nach bhfuil tú ag dul a leagan amach do luach do pointeoir chun rud éigin atá ciallmhar, ba chóir duit a leagtar a margadh saothair? Rinne mé agus ar ndóigh, an deighilt Tá locht de chineál ar iompar maith. An bhfuil tú riamh a dhearbhú athróg agus Ní shanntar a luach láithreach? Mar sin, tú a rá ach slánuimhir x; nach bhfuil tú i ndáiríre é a shannadh don rud ar bith agus ansin níos déanaí sa do chód, tú a phriontáil amach luach x, a bhfuil fós nach sé shanntar rud ar bith. Minic beidh tú náid, ach uaireanta tú D'fhéadfadh a fháil ar roinnt uimhir randamach, agus tá tú aon smaoineamh nuair a tháinig sé as. Mar an gcéanna is féidir rudaí tarlú le leideanna. Nuair a dhearbhú pointeoir slánuimhir * pk, mar shampla, agus ní gá duit é a shannadh do luach, a gheobhaidh tú ceithre bytes do chuimhne. Cibé rud a cheithre bytes de cuimhne an córas is féidir teacht ar go bhfuil roinnt luach bríoch. Agus a d'fhéadfadh go raibh rud éigin ann cheana féin go Tá a thuilleadh ag teastáil ag eile fheidhm, agus mar sin tá tú díreach is cuma cad na sonraí a bhí ann. Cad a tharlaíonn má tá tú iarracht a dhéanamh téigh i roinnt suíomh go don't- tú go raibh bytes agus faisnéis i cheana féin ann, go anois i do pointeoir. Má tá tú iarracht, agus téigh go pointeoir, d'fhéadfá a bheith messing le roinnt cuimhne nach raibh tú i gceist a praiseach leis go léir. Agus go deimhin d'fhéadfaí tú a dhéanamh rud éigin i ndáiríre tubaisteach, cosúil le sos clár eile, nó briseadh fheidhm eile, nó rud éigin mailíseach go bhfuil nach raibh tú ar intinn a dhéanamh ar chor ar bith. Agus mar sin tá sin an fáth sé i ndáiríre smaoineamh maith a leagan amach do leideanna a margadh saothair má tá tú Ní gá iad a shocrú le rud éigin fiúntach. Is dócha níos fearr ag an deireadh an lae do do chlár a tuairteála ansin chun é a dhéanamh rud éigin go scriúnna suas clár eile nó feidhm eile. Is é sin iompar dócha fiú chomh idéalach ná díreach crashing. Agus mar sin tá sin an fáth sé iarbhír nós maith a fháil i leagan amach do leideanna chun a margadh saothair mura bhfuil tú a leagtar orthu le luach bríoch láithreach, le luach a fhios agat agus gur féidir leat go sábháilte ar an téigh i. Mar sin, a ligean ar teacht ar ais anois agus a chur le breathnú ag an error foriomlán ar an staid. Má rá liom slánuimhir * p ;, an méid atá déanta mé díreach? Cad mé a rinneadh é seo. Tá a fhios agam go bhfuil an luach an p seoladh mar go bhfuil gach leideanna ach seoltaí. Féidir liom téigh i p ag baint úsáide as an t-oibreoir *. Sa chomhthéacs seo anseo, ag an an- barr cuimhne go bhfuil an * mar chuid den chineál. Slánuimhir * Tá an cineál sonraí. Ach is féidir liom téigh i p ag baint úsáide as an t-oibreoir *, agus má dhéanann mé amhlaidh, má théann mé go dtí an seoladh sin, Beidh mé cad a fháil ag an seoladh sin? Beidh mé ag teacht slánuimhir. Dá bhrí sin tá slánuimhir * p bunúsach ag rá, tá p seoladh. Is féidir liom téigh i p agus más rud é Is féidir liom, beidh mé ag teacht ar slánuimhir ag an suíomh chuimhne. OK mar sin a dúirt mé go raibh ceann eile Rud annoying le réaltaí agus anseo an áit sin Is é rud annoying le réaltaí. An ndearna tú iarracht riamh a dhearbhú athróga éagsúla den chineál céanna ar an líne chéanna de chód? Mar sin, le haghaidh an dara, ligean go an líne, an cód go bhfuil mé i ndáiríre ann i glas Níl ann agus deir sé ach slánuimhir x, y, z ;. Cad a bheadh ​​dhéanamh ná a chruthú i ndáiríre trí athróg slánuimhir ar do shon, ceann ar a dtugtar x, ar a dtugtar ar cheann y, agus ceann ar a dtugtar z. Tá sé ar bhealach chun é a dhéanamh gan a bhfuil a scoilt isteach trí líne. Seo áit a fháil réaltaí annoying arís áfach, toisc go bhfuil an * i ndáiríre mar chuid araon ainm chineál agus cuid an t-ainm athraitheach. Agus mar sin má rá liom slánuimhir * px, py, PZ, cad a dhéanfaidh mé i ndáiríre tá a fháil ar pointeoir go slánuimhir ar a dtugtar px agus dhá slánuimhreacha, py agus PZ. Agus sin is dócha nach cad ba mhaith linn, ní go maith. Mar sin, más mian liom a chruthú leideanna éagsúla ar an líne chéanna, den chineál céanna, agus réaltaí, an méid is gá mé i ndáiríre Is é a dhéanamh rá slánuimhir * pa, * pb, * ríomhaire. Anois ráite go díreach agus anois ag rá leat seo, ní bheidh tú é seo is dócha. Agus is dócha gur rud maith é go hionraic, toisc go dtiocfadh leat neamhaireach fhágáil ar lár le réalta, rud éigin mar sin. Is dócha is fearr chun a dhearbhú b'fhéidir leideanna ar línte aonair, ach tá sé ach ceann eile de na daoine annoying error rudaí le réaltaí a dhéanann leideanna sin deacair a bheith ag obair leis. Toisc go bhfuil sé ach an comhréire praiseach tá tú ag obair tríd. Leis an gcleachtas a dhéanann sé i ndáiríre a bheith an dara cineál. I botúin a dhéanamh go fóill leis fós tar éis cláir ar feadh 10 mbliana, ní amhlaidh a dhéanamh a bheith trína chéile má tharlaíonn rud éigin a thabhairt duit, tá sé deas coitianta go hionraic. Tá sé i ndáiríre de chineál ar locht ar an chomhréir. OK mar sin mé de chineál ar geallta go mbeadh muid athchuairt Is é an coincheap de cé chomh mór agus a teaghrán. Bhuel má Dúirt mé leat go teaghrán, tá muid i ndáiríre de chineál ar curtha suite a thabhairt duit an t-am ar fad. Níl aon cineál sonraí a dtugtar teaghrán, agus go deimhin I luaitear seo i gceann dár físeáin is luaithe ar cineálacha sonraí, go raibh teaghrán cineál sonraí a Cruthaíodh do shon i CS50.h. Tá tú chun #include CS50.h chun é a úsáid. Bhuel tá teaghrán ndáiríre ach ailias as rud éigin ar a dtugtar an ruabhric *, a pointeoir le carachtar. Bhuel leideanna, chun cuimhne, bhfuil ach seoltaí. Mar sin, cad é an méid i bytes de shraith? Bhuel tá sé ceithre nó ocht. Agus an chúis a rá liom ceithre nó Is ocht toisc go sé i ndáiríre ag brath ar an gcóras, Má tá tú ag baint úsáide Ide CS50, tá ruabhric * ar chóimhéid le ruabhric Is * ocht, tá sé ina córas 64-giotán. Tá gach suíomh i gcuimhne 64 giotán fada. Má tá tú ag baint úsáide as fearas CS50 nó baint úsáide as aon mheaisín 32-giotán, agus tá tú ag éisteacht an téarma sin 32-giotán meaisín, cad is meaisín 32-giotán? Bhuel ciallaíonn sé ach go bhfuil gach Tá seoladh i gcuimhne 32 giotán fada. Agus mar sin tá 32 giotán ceithre bytes. Mar sin, tá Char * ceithre nó ocht bytes ag brath ar do chóras. Agus go deimhin aon cineálacha sonraí, agus pointeoir ar aon sonraí cineál, ós rud é go bhfuil gach leideanna ach seoltaí, tá ceithre nó ocht bytes. Mar sin, a ligean ar athchuairt seo léaráid agus a ligean ar thabhairt i gcrích físeán seo le cleachtadh beag anseo. Mar sin, tá anseo an léaráid fhág muid amach le ag an tús an-an físeán. Mar sin, cad a tharlaíonn anois má rá liom * pk = 35? Mar sin, cad is ciall leis nuair a rá liom, * pk = 35? Chur ar an dara. * pk. Sa chomhthéacs anseo, tá * oibreoir téigh i. Mar sin, nuair a bheidh an téigh i Tá oibreoir úsáidtear, théann muid go dtí an seoladh Luaigh ag pk, agus athrú againn cad a fháil againn. Mar sin, * pk = 35 héifeachtach mbaineann sé seo chun an pictiúr. Mar sin, tá sé go bunúsach syntactically comhionann le de ráite k = 35. Ceann amháin eile. Má rá liom slánuimhir m, a chruthú mé athróg nua ar a dtugtar m. Bosca nua, tá sé ina bosca glas mar gheall ar sé ag dul a bheith i seilbh slánuimhir, agus tá sé lipéadaithe m. Má rá liom m = 4, chuir mé ar slánuimhir isteach sa bhosca. Má rá pk = & m, conas a dhéanann an t-athrú léaráid? Pk = & m, a dhéanann cuimhne agat cad an & Ní oibreoir nó a dtugtar? Cuimhnigh go & ainm éigin athróg Is é an seoladh ar ainm athraitheach. Mar sin, cad tá muid ag rá go bhfuil pk faigheann an seoladh m. Agus mar sin go héifeachtach cad a tharlaíonn an Is léaráid go PK pointí a thuilleadh a k, ach pointí chun m. Arís tá an-leideanna tricky a bheith ag obair leis agus a ghlacann siad a lán de na gcleachtas, ach mar gheall ar ar a gcumas chun deis a thabhairt duit chun sonraí idir feidhmeanna pas agus ar ndóigh, iad siúd go bhfuil ghlacadh athruithe i bhfeidhm, ag fáil do cheann timpeall Tá tábhachtach i ndáiríre. Is dócha go bhfuil an chuid is mó casta topaic a phlé againn i CS50, ach an luach go bhfuil tú a fháil ó úsáid a bhaint leideanna i bhfad níos tábhachtaí ná na deacrachtaí a thagann uathu foghlaim. Mar sin, ba mhaith liom tú an chuid is fearr de Ádh mór ag foghlaim faoi leideanna. Tá mé Doug Lloyd, is é seo CS50.