>> [સંગીત વગાડવાનો]
>> ડો LLOYD: બરાબર.
અમે પૂર્ણાંકો સાથે કામ કર્યું છે, અમે અક્ષરો સાથે કામ કર્યું છે,
અમે ફ્લોટ્સ કામ કર્યું છે, ડબલ્સમાં, સ્ટ્રિંગ્સ, અને bools હોઈ શકે છે.
અમે ખૂબ બધા ખૂબ ફેંક્યા [અશ્રાવ્ય] પ્રકારના કે
સાથે અમને બધા માટે ઉપલબ્ધ કરવામાં આવી છે.
પરંતુ હવે અમે વધુ કંઈક કરવા માંગો છો.
અમે તે કેવી રીતે કરવું?
અમે કેવી રીતે વિવિધ માહિતી પ્રકારના બનાવવા નથી?
અમે માળખાં ઉપયોગ કરીને કરી શકો છો.
તેથી માળખાં અમને એકીકૃત કરવા માટે પરવાનગી આપે વિવિધ પ્રકારના ચલો
એક નવા ચલ પ્રકાર માં, જે અમે તેના પોતાના પ્રકાર નામ સોંપી શકો છો.
આ એક ખરેખર મજબૂત છે વસ્તુ કરવા માટે સમર્થ થવા માટે
અમે જૂથ હવે આ કરી શકે છે, કારણ કે વિવિધ માહિતી પ્રકારના તત્વો
સાથે મળીને એક લોજિકલ જોડાણ હોય છે.
અમે આ કરવા માટે સક્ષમ કરવામાં આવી છે પ્રકારની એરે સાથે, અધિકાર?
અમે કરી શકો છો જૂથ ચલો આ જ માહિતી પ્રકાર
સાથે મળીને એક મોટા એકમ મેમરી, એક એરે છે.
>> પરંતુ અમે ભળવું સમર્થ નથી આવ્યા એકસાથે વિવિધ માહિતી પ્રકારો.
અમે એક પૂર્ણાંક જોડી કહી ન શકે, અને એક પાત્ર, અને ડબલ બધા
આ જ વાત અને એક એકમ કે ફોન કરો.
પરંતુ સાથે માળખાં, અથવા વારંવાર, સ્ટ્ર્ક્ટ્સ તરીકે ઓળખવામાં આવે છે
અમે ખરેખર કરી શકો છો.
તેથી માળખું જેવું છે એક સુપર ચલ જેવા હોય છે.
તે ધરાવે છે એક ચલ છે તે અંદર અન્ય ચલો.
તેથી અહીં એક ઉદાહરણ છે ખૂબ જ સરળ માળખું.
આ વાક્યરચના દેખાય તો શું છે એક કાર માટે એક માળખું બનાવવા માંગો.
હવે, ચાલો અહીં વાક્યરચના મારફતે જવા દો.
સ્ટ્રક્ટ છે, કે જે છે સૂચવે છે કે શબ્દ
હું અહીં એક નવી માહિતી પ્રકાર બનાવવા છું છે.
ખાસ કરીને, ડેટા પ્રકાર નામ છે અમે જોશો, સ્ટ્રક્ટ કાર જઈ રહી છે.
પરંતુ આ ટિપ ના જેવું છે કમ્પાઇલર માટે આ બોલ પર છે કે આ
ચલો એક જૂથ છે કે જે રહ્યું છે એક જ પ્રકારના ભાગ ગણવામાં આવે છે
એક મિનિટ માં.
>> કાર, માળખું ફક્ત નામ.
ફરી, અહીં ડેટા પ્રકાર રહ્યું છે સ્ટ્રક્ટ કાર, માત્ર કાર હોય છે.
પરંતુ તમે different-- હોય તો જો તમે બહુવિધ સ્ટ્ર્ક્ટ્સ બનાવવા જો
એ જ કાર્યક્રમ માં, તમે જરૂર સ્ટ્રક્ટ અને સ્ટ્રક્ટ વચ્ચે તફાવત.
તેથી સ્ટ્રક્ટ કાર, હું પણ હોય શકે છે સ્ટ્રક્ટ વિદ્યાર્થી, ઉદાહરણ તરીકે,
એ જ કાર્યક્રમ.
આ સર્પાકાર કૌંસ અંદર છે કહેવાતા ક્ષેત્રોમાં બધા,
અથવા માળખું સભ્યો.
તેથી કેટલીક બાબતો શું છે એક કાર સહજ છે કે?
વેલ, તે સામાન્ય રીતે એક વર્ષ હોય છે છે એક મોડેલ નામ, અને લાઇસન્સ પ્લેટ,
સામાન્ય રીતે છે કે એક odometer તે પર માઇલ કેટલાક નંબર,
અને કદાચ એન્જિન માપ.
તમે જોઈ શકો છો અને, હું મિશ્રણ છું પૂર્ણાંકો અને અક્ષરો અને ડબલ્સ.
તેઓ બધા પ્રયત્ન જઈ રહ્યાં છો આ નવી માહિતી પ્રકાર ભાગ છે.
>> છેલ્લે, અંતિમ વસ્તુ હું શું કરવાની જરૂર છે, આ થોડું અર્ધવિરામ ભૂલી નથી
અંતે.
અમે માળખું વ્યાખ્યાયિત સમાપ્ત કર્યા પછી, અમે ઓવરને અંતે અર્ધવિરામ મુકવાની જરૂર છે.
તે એક ખૂબ જ સામાન્ય syntactical છે ભૂલ, એક કાર્ય સાથે, કારણ કે
ઉદાહરણ માટે, તમે માત્ર હશે ઓપન સર્પાકાર તાણવું, બંધ સર્પાકાર તાણવું.
તમે એક અર્ધવિરામ મૂકી નથી એક કાર્ય વ્યાખ્યા અંત થાય છે.
આ એક કાર્ય જેમ દેખાય છે વ્યાખ્યા છે, પરંતુ તે નથી,
અને તેથી અર્ધવિરામ ત્યાં ફક્ત એક સ્મૃતિપત્ર છે કે જે તમને
કારણ કે, તેને ત્યાં મૂકી કરવાની જરૂર છે કમ્પાઇલર નથી અન્યથા કરશે
તેની સાથે શું કરવું તે ખબર.
તે એક ખૂબ જ સામાન્ય ભૂલ છે આકસ્મિક બનાવવા માટે
જ્યારે તમે પ્રથમ માળખાં વ્યાખ્યાયિત કરી રહ્યા છીએ.
>> ઠીક છે.
તેથી અમે સામાન્ય રીતે અમારી માળખાં વ્યાખ્યાયિત અમારા કાર્યક્રમોનું ખૂબ જ ટોચ પર
તેઓ કદાચ જઈ રહ્યાં છો કારણ કે બહુવિધ કાર્યો દ્વારા વાપરી શકાય છે.
અમે એક વ્યાખ્યાયિત કરવા માટે નહિં માંગો એક કાર્ય ની અંદર સ્ટ્રક્ટ,
પછી અમે only-- શકે છે કારણ કે માળખું અવકાશ ખરેખર
માત્ર તે કાર્ય ની અંદર અસ્તિત્વમાં છે.
અમે કદાચ એક માળખું વ્યાખ્યાયિત કરવા માંગો છો છો તેથી અમે બહુવિધ કાર્યો ઉપયોગ કરી શકો છો,
અથવા કદાચ બહુવિધ માં સાથે મળીને બંધાયેલ છે કે ફાઇલો
અમારા એક કાર્યક્રમ બનાવવા માટે.
ક્યારેક પણ બદલે માળખું વ્યાખ્યાયિત
તમે મૂકી છે ખૂબ જ ટોચ પર તમારા પાઉન્ડ સમાવેશ થાય છે અને તમારા પાઉન્ડ વ્યાખ્યાયિત
ઉદાહરણ માટે, તમે તેમને મૂકી શકે અલગ ટપકું એચ ફાઇલો, પછી જે તમે
પાઉન્ડ જાતે સમાવેશ થાય છે.
>> તેથી અમે માળખાં હોય છે, પરંતુ હવે અમે તેમને અંદર વિચાર કરવાની જરૂર છે.
અમે કેવી રીતે અંદર મેળવી શકું ઍક્સેસ કરવા માટે એક માળખું
તે પેટા ચલો, તે ચલો કે માળખું અંદર અસ્તિત્વ ધરાવે છે?
વેલ, અમે કહેવાય કંઈક હોય છે અમને પરવાનગી આપે છે કે જે કોઈ ઓપરેટર,
માળખું ક્ષેત્રો ઍક્સેસ કરવા માટે.
તેથી ઉદાહરણ તરીકે, હું જાહેર કર્યું છે કહે દો મારા માળખું માહિતી ક્યાંક લખો
મારા કાર્યક્રમ ટોચ પર, અથવા કદાચ માં હું પાઉન્ડ કર્યું કે કોઈ એચ ફાઇલ સમાવેશ થાય છે.
હું પછી એક નવી બનાવવા માંગો છો તો કે માહિતી પ્રકાર ચલ, હું કહી શકો છો
સ્ટ્રક્ટ કાર, મારી કાર, અર્ધવિરામ.
હું પૂર્ણાંક કહી શકે જેમ એક્સ, અથવા શબ્દમાળા નામ અર્ધવિરામ.
>> અહીં ડેટા પ્રકાર, સ્ટ્રક્ટ કાર છે ચલ ના નામ, મારી કાર છે
અને પછી હું કોઈ ઓપરેટર ઉપયોગ કરી શકો છો મારી કાર વિવિધ ક્ષેત્રોમાં ઍક્સેસ કરો.
તેથી હું મારી કાર કહી શકો છો ડોટ વર્ષ 2011 સમકક્ષ હોય છે.
તે સંપૂર્ણપણે દંડ છે.
તમે યાદ તો વર્ષ, એક તરીકે વ્યાખ્યાયિત કરવામાં આવ્યું હતું આ સ્ટ્રક્ટ કાર ની અંદર પૂર્ણાંક ક્ષેત્ર
ડેટા પ્રકાર.
સ્ટ્રક્ટ કાર માહિતી તેથી કોઇ વેરિયેબલ પ્રકાર, જેમ કે મારી કાર તરીકે, હું મારી કાર કહી શકો છો
ડોટ વર્ષે બરાબર અને પછી સોંપી તે કેટલાક પૂર્ણાંક કિંમત, 2011.
મારી કાર ટપકું પ્લેટ CS50 સમકક્ષ હોય છે.
મારું કાર્ડ ટપકું odometer 50505 અર્ધવિરામ સમકક્ષ હોય છે.
તે બધા છે સંપૂર્ણપણે દંડ છે અને તે છે
અમે ઍક્સેસ કેવી રીતે માળખું ક્ષેત્રો.
માળખાં, છતાં, જરૂર નથી સ્ટેક પર બનાવી શકાય છે.
જસ્ટ અમે અન્ય કોઇ વેરિયેબલ ગમે ગતિશીલ તેમને સ્થાપિત કરી શકે છે.
અમે એક કાર્યક્રમ હોય, તો તે કદાચ ઘણા માળખાં પેદા કરી,
અમે કેવી રીતે ઘણા ખબર નથી અમે જરૂર જઈ રહ્યાં છો
પછી અમે ગતિશીલ માટે જરૂર તે માળખાં ફાળવવા
અમારા કાર્યક્રમ તરીકે ચાલી રહ્યું છે.
અને અમે ઍક્સેસ કરવા માટે જઈ રહ્યાં છો, તેથી જો તે સંદર્ભમાં એક માળખું ક્ષેત્રો,
અમે પ્રથમ ડિરેફરન્સ જરૂર છે કે જે રિકોલ બંધારણ નિર્દેશક,
અને પછી અમે એક વાર ખોટો સંદર્ભ આ નિર્દેશક, તો પછી અમે ક્ષેત્રો ઍક્સેસ કરી શકો છો.
અમે માત્ર એક હોય તો બંધારણ નિર્દેશક,
અમે ફક્ત નિર્દેશક ટપકું ક્ષેત્ર કહી શકો છો નામ અને અમે શોધી રહ્યાં છો તે આપ મેળવો.
Dereferencing વધારાની પગલું છે.
તેથી કહે છે કે દો તેના બદલે previous-- ના
ફક્ત અગાઉના ઉદાહરણ તરીકે, તેના બદલે તે જાહેર
સ્ટેક પર, સ્ટ્રક્ટ કાર, મારા કાર, અર્ધવિરામ, હું સ્ટ્રક્ટ કાર કહે છે
સ્ટાર, એક પર એક નિર્દેશક સ્ટ્રક્ટ કાર, મારી કાર કહેવાય
સ્ટ્રક્ટ કાર malloc માપ સમકક્ષ હોય છે.
કેટલા અમે માપ બહાર આકૃતિ પડશે તમારા નવા ડેટા પ્રકાર લે બાઇટ્સ.
તમે જરૂરી માત્ર ઉપયોગ કરવાની જરૂર નથી પહોળાઈ, પૂર્ણાંક, અથવા ઘરનાં પરચૂરણ કામો, અથવા કોઈપણ કદ
આંતરિક માહિતી પ્રકારો છે.
આ કમ્પાઈલર પૂરતી સ્માર્ટ છે કેટલા બાઇટ્સ બહાર આકૃતિ
તમારા નવા માળખા દ્વારા જરૂરી છે.
તેથી હું મારી જાતને મેમરી નો એકમ malloc એક સ્ટ્રક્ટ કાર પકડી પૂરતી મોટી,
અને હું પાછળ એક નિર્દેશક વિચાર મેમરી કે બ્લોક કરવા માટે,
અને તે નિર્દેશક મારી કાર સોંપેલ છે.
>> હવે, હું ઍક્સેસ કરવા માંગો છો, તો મારી કાર ક્ષેત્રો,
હું પ્રથમ મારા કાર ખોટો સંદર્ભ ઉપયોગ કરીને ડિરેફરન્સ ઓપરેટર, સ્ટાર
અમે પોઇન્ટર જોઇ છે વિડિઓઝ, અને પછી હું ખોટો સંદર્ભ પછી,
પછી હું કોઈ ઓપરેટર ઉપયોગ કરી શકો છો મારી કાર વિવિધ ક્ષેત્રોમાં ઍક્સેસ કરો.
વર્ષ 2011 જેટલી જ થાય છે ટપકું મારી કાર સ્ટાર.
કે અસર હશે અમે આ કિસ્સામાં માંગો છો,
અમે ગતિશીલ કર્યું કારણ કે મારી કાર ફાળવવામાં આવે છે.
>> તે સાચું છે, છતાં, પ્રકારની નકામી છે?
હવે 2-પગલાંની પ્રક્રિયા છે.
હવે અમે dereference-- છે આપણે એક તારો ઓપરેટર છે,
અને અમે કોઈ ઓપરેટર છે.
અને તમે અપેક્ષા શકે છે, કારણ કે સી પ્રોગ્રામરો ટૂંકા રીતે પ્રેમ
વસ્તુઓ કરવા માટે, એક છે ટૂંકા માર્ગ આ કરવા માટે.
તીર કહેવાય અન્ય ઓપરેટર છે, જે આ પ્રક્રિયા ખૂબ સરળ બનાવે છે.
તીર જે રીતે કામ કરે છે તે પ્રથમ dereferences
ડાબી પર નિર્દેશક ઓપરેટર બાજુ,
અને પછી, પછી dereferenced કર્યા ડાબી પર નિર્દેશક,
તે જમણી બાજુ પર ક્ષેત્ર ઘટનાઓ.
અને તેથી પહેલા અમે આ પ્રકારની હતી મારા કાર, આ તમામ સામગ્રી ડોટ સ્ટાર
જેવા ત્યાં જઈને ઘણો હતો.
પરંતુ અમે તેના બદલે શું કરી શકો છો આ છે મારી કાર તીર વર્ષ 2011 સમકક્ષ હોય છે.
>> ફરી, અહીં શું થઈ રહ્યું છે?
પ્રથમ, હું મારી કાર dereferencing છું.
જે ફરીથી અહીં એક નિર્દેશક છે.
પછી, કર્યા બાદ હું મારી કાર dereferenced
પછી ક્ષેત્રો ઍક્સેસ કરી શકો છો વર્ષ, પ્લેટ, અને odometer
માત્ર હું કરી શકે તરીકે પ્રથમ કર્યા પહેલાં મારી કાર ડિરેફરન્સ વપરાયેલ સ્ટાર,
અને જો આ ક્ષેત્રમાં ઍક્સેસ કરવા માટે DOT.
તેથી તમે, માળખાં હોઈ શકે છે માળખાં પોઇન્ટર હોય શકે છે,
અને તમે ઍક્સેસ કરવા રીતો છે તે માળખાં ક્ષેત્રો,
તમે પોઇન્ટર છે કે શું તેમને અથવા ચલો પોતાને.
ડોટ અથવા તીર પર આધાર રાખીને ચલ કેવી રીતે જાહેર કરવામાં આવી હતી.
હું ડો લોયડ છું, આ CS50 છે.