1 00:00:00,000 --> 00:00:02,395 >> [સંગીત વગાડવાનો] 2 00:00:02,395 --> 00:00:05,750 3 00:00:05,750 --> 00:00:06,506 >> ડો LLOYD: બરાબર. 4 00:00:06,506 --> 00:00:08,880 અમે પૂર્ણાંકો સાથે કામ કર્યું છે, અમે અક્ષરો સાથે કામ કર્યું છે, 5 00:00:08,880 --> 00:00:11,930 અમે ફ્લોટ્સ કામ કર્યું છે, ડબલ્સમાં, સ્ટ્રિંગ્સ, અને bools હોઈ શકે છે. 6 00:00:11,930 --> 00:00:14,870 અમે ખૂબ બધા ખૂબ ફેંક્યા [અશ્રાવ્ય] પ્રકારના કે 7 00:00:14,870 --> 00:00:17,100 સાથે અમને બધા માટે ઉપલબ્ધ કરવામાં આવી છે. 8 00:00:17,100 --> 00:00:19,430 પરંતુ હવે અમે વધુ કંઈક કરવા માંગો છો. 9 00:00:19,430 --> 00:00:20,210 અમે તે કેવી રીતે કરવું? 10 00:00:20,210 --> 00:00:22,560 અમે કેવી રીતે વિવિધ માહિતી પ્રકારના બનાવવા નથી? 11 00:00:22,560 --> 00:00:26,130 અમે માળખાં ઉપયોગ કરીને કરી શકો છો. 12 00:00:26,130 --> 00:00:30,180 તેથી માળખાં અમને એકીકૃત કરવા માટે પરવાનગી આપે વિવિધ પ્રકારના ચલો 13 00:00:30,180 --> 00:00:34,810 એક નવા ચલ પ્રકાર માં, જે અમે તેના પોતાના પ્રકાર નામ સોંપી શકો છો. 14 00:00:34,810 --> 00:00:37,570 આ એક ખરેખર મજબૂત છે વસ્તુ કરવા માટે સમર્થ થવા માટે 15 00:00:37,570 --> 00:00:40,900 અમે જૂથ હવે આ કરી શકે છે, કારણ કે વિવિધ માહિતી પ્રકારના તત્વો 16 00:00:40,900 --> 00:00:43,910 સાથે મળીને એક લોજિકલ જોડાણ હોય છે. 17 00:00:43,910 --> 00:00:46,440 અમે આ કરવા માટે સક્ષમ કરવામાં આવી છે પ્રકારની એરે સાથે, અધિકાર? 18 00:00:46,440 --> 00:00:49,540 અમે કરી શકો છો જૂથ ચલો આ જ માહિતી પ્રકાર 19 00:00:49,540 --> 00:00:53,410 સાથે મળીને એક મોટા એકમ મેમરી, એક એરે છે. 20 00:00:53,410 --> 00:00:56,660 >> પરંતુ અમે ભળવું સમર્થ નથી આવ્યા એકસાથે વિવિધ માહિતી પ્રકારો. 21 00:00:56,660 --> 00:01:02,610 અમે એક પૂર્ણાંક જોડી કહી ન શકે, અને એક પાત્ર, અને ડબલ બધા 22 00:01:02,610 --> 00:01:05,330 આ જ વાત અને એક એકમ કે ફોન કરો. 23 00:01:05,330 --> 00:01:08,830 પરંતુ સાથે માળખાં, અથવા વારંવાર, સ્ટ્ર્ક્ટ્સ તરીકે ઓળખવામાં આવે છે 24 00:01:08,830 --> 00:01:09,585 અમે ખરેખર કરી શકો છો. 25 00:01:09,585 --> 00:01:12,370 તેથી માળખું જેવું છે એક સુપર ચલ જેવા હોય છે. 26 00:01:12,370 --> 00:01:16,530 તે ધરાવે છે એક ચલ છે તે અંદર અન્ય ચલો. 27 00:01:16,530 --> 00:01:19,650 તેથી અહીં એક ઉદાહરણ છે ખૂબ જ સરળ માળખું. 28 00:01:19,650 --> 00:01:23,380 આ વાક્યરચના દેખાય તો શું છે એક કાર માટે એક માળખું બનાવવા માંગો. 29 00:01:23,380 --> 00:01:25,250 હવે, ચાલો અહીં વાક્યરચના મારફતે જવા દો. 30 00:01:25,250 --> 00:01:27,400 સ્ટ્રક્ટ છે, કે જે છે સૂચવે છે કે શબ્દ 31 00:01:27,400 --> 00:01:30,270 હું અહીં એક નવી માહિતી પ્રકાર બનાવવા છું છે. 32 00:01:30,270 --> 00:01:33,860 ખાસ કરીને, ડેટા પ્રકાર નામ છે અમે જોશો, સ્ટ્રક્ટ કાર જઈ રહી છે. 33 00:01:33,860 --> 00:01:36,640 પરંતુ આ ટિપ ના જેવું છે કમ્પાઇલર માટે આ બોલ પર છે કે આ 34 00:01:36,640 --> 00:01:42,440 ચલો એક જૂથ છે કે જે રહ્યું છે એક જ પ્રકારના ભાગ ગણવામાં આવે છે 35 00:01:42,440 --> 00:01:44,010 એક મિનિટ માં. 36 00:01:44,010 --> 00:01:46,340 >> કાર, માળખું ફક્ત નામ. 37 00:01:46,340 --> 00:01:50,590 ફરી, અહીં ડેટા પ્રકાર રહ્યું છે સ્ટ્રક્ટ કાર, માત્ર કાર હોય છે. 38 00:01:50,590 --> 00:01:53,060 પરંતુ તમે different-- હોય તો જો તમે બહુવિધ સ્ટ્ર્ક્ટ્સ બનાવવા જો 39 00:01:53,060 --> 00:01:56,950 એ જ કાર્યક્રમ માં, તમે જરૂર સ્ટ્રક્ટ અને સ્ટ્રક્ટ વચ્ચે તફાવત. 40 00:01:56,950 --> 00:02:00,140 તેથી સ્ટ્રક્ટ કાર, હું પણ હોય શકે છે સ્ટ્રક્ટ વિદ્યાર્થી, ઉદાહરણ તરીકે, 41 00:02:00,140 --> 00:02:01,790 એ જ કાર્યક્રમ. 42 00:02:01,790 --> 00:02:05,980 આ સર્પાકાર કૌંસ અંદર છે કહેવાતા ક્ષેત્રોમાં બધા, 43 00:02:05,980 --> 00:02:07,954 અથવા માળખું સભ્યો. 44 00:02:07,954 --> 00:02:10,370 તેથી કેટલીક બાબતો શું છે એક કાર સહજ છે કે? 45 00:02:10,370 --> 00:02:15,270 વેલ, તે સામાન્ય રીતે એક વર્ષ હોય છે છે એક મોડેલ નામ, અને લાઇસન્સ પ્લેટ, 46 00:02:15,270 --> 00:02:18,000 સામાન્ય રીતે છે કે એક odometer તે પર માઇલ કેટલાક નંબર, 47 00:02:18,000 --> 00:02:19,225 અને કદાચ એન્જિન માપ. 48 00:02:19,225 --> 00:02:23,570 તમે જોઈ શકો છો અને, હું મિશ્રણ છું પૂર્ણાંકો અને અક્ષરો અને ડબલ્સ. 49 00:02:23,570 --> 00:02:26,420 તેઓ બધા પ્રયત્ન જઈ રહ્યાં છો આ નવી માહિતી પ્રકાર ભાગ છે. 50 00:02:26,420 --> 00:02:29,750 >> છેલ્લે, અંતિમ વસ્તુ હું શું કરવાની જરૂર છે, આ થોડું અર્ધવિરામ ભૂલી નથી 51 00:02:29,750 --> 00:02:30,290 અંતે. 52 00:02:30,290 --> 00:02:34,380 અમે માળખું વ્યાખ્યાયિત સમાપ્ત કર્યા પછી, અમે ઓવરને અંતે અર્ધવિરામ મુકવાની જરૂર છે. 53 00:02:34,380 --> 00:02:37,325 તે એક ખૂબ જ સામાન્ય syntactical છે ભૂલ, એક કાર્ય સાથે, કારણ કે 54 00:02:37,325 --> 00:02:40,200 ઉદાહરણ માટે, તમે માત્ર હશે ઓપન સર્પાકાર તાણવું, બંધ સર્પાકાર તાણવું. 55 00:02:40,200 --> 00:02:42,950 તમે એક અર્ધવિરામ મૂકી નથી એક કાર્ય વ્યાખ્યા અંત થાય છે. 56 00:02:42,950 --> 00:02:46,430 આ એક કાર્ય જેમ દેખાય છે વ્યાખ્યા છે, પરંતુ તે નથી, 57 00:02:46,430 --> 00:02:49,653 અને તેથી અર્ધવિરામ ત્યાં ફક્ત એક સ્મૃતિપત્ર છે કે જે તમને 58 00:02:49,653 --> 00:02:52,440 કારણ કે, તેને ત્યાં મૂકી કરવાની જરૂર છે કમ્પાઇલર નથી અન્યથા કરશે 59 00:02:52,440 --> 00:02:53,510 તેની સાથે શું કરવું તે ખબર. 60 00:02:53,510 --> 00:02:56,160 તે એક ખૂબ જ સામાન્ય ભૂલ છે આકસ્મિક બનાવવા માટે 61 00:02:56,160 --> 00:02:58,570 જ્યારે તમે પ્રથમ માળખાં વ્યાખ્યાયિત કરી રહ્યા છીએ. 62 00:02:58,570 --> 00:02:59,500 >> ઠીક છે. 63 00:02:59,500 --> 00:03:02,824 તેથી અમે સામાન્ય રીતે અમારી માળખાં વ્યાખ્યાયિત અમારા કાર્યક્રમોનું ખૂબ જ ટોચ પર 64 00:03:02,824 --> 00:03:05,490 તેઓ કદાચ જઈ રહ્યાં છો કારણ કે બહુવિધ કાર્યો દ્વારા વાપરી શકાય છે. 65 00:03:05,490 --> 00:03:08,850 અમે એક વ્યાખ્યાયિત કરવા માટે નહિં માંગો એક કાર્ય ની અંદર સ્ટ્રક્ટ, 66 00:03:08,850 --> 00:03:12,110 પછી અમે only-- શકે છે કારણ કે માળખું અવકાશ ખરેખર 67 00:03:12,110 --> 00:03:13,790 માત્ર તે કાર્ય ની અંદર અસ્તિત્વમાં છે. 68 00:03:13,790 --> 00:03:17,450 અમે કદાચ એક માળખું વ્યાખ્યાયિત કરવા માંગો છો છો તેથી અમે બહુવિધ કાર્યો ઉપયોગ કરી શકો છો, 69 00:03:17,450 --> 00:03:20,670 અથવા કદાચ બહુવિધ માં સાથે મળીને બંધાયેલ છે કે ફાઇલો 70 00:03:20,670 --> 00:03:22,920 અમારા એક કાર્યક્રમ બનાવવા માટે. 71 00:03:22,920 --> 00:03:24,920 ક્યારેક પણ બદલે માળખું વ્યાખ્યાયિત 72 00:03:24,920 --> 00:03:27,961 તમે મૂકી છે ખૂબ જ ટોચ પર તમારા પાઉન્ડ સમાવેશ થાય છે અને તમારા પાઉન્ડ વ્યાખ્યાયિત 73 00:03:27,961 --> 00:03:32,080 ઉદાહરણ માટે, તમે તેમને મૂકી શકે અલગ ટપકું એચ ફાઇલો, પછી જે તમે 74 00:03:32,080 --> 00:03:35,020 પાઉન્ડ જાતે સમાવેશ થાય છે. 75 00:03:35,020 --> 00:03:37,620 >> તેથી અમે માળખાં હોય છે, પરંતુ હવે અમે તેમને અંદર વિચાર કરવાની જરૂર છે. 76 00:03:37,620 --> 00:03:39,800 અમે કેવી રીતે અંદર મેળવી શકું ઍક્સેસ કરવા માટે એક માળખું 77 00:03:39,800 --> 00:03:43,530 તે પેટા ચલો, તે ચલો કે માળખું અંદર અસ્તિત્વ ધરાવે છે? 78 00:03:43,530 --> 00:03:46,810 વેલ, અમે કહેવાય કંઈક હોય છે અમને પરવાનગી આપે છે કે જે કોઈ ઓપરેટર, 79 00:03:46,810 --> 00:03:50,990 માળખું ક્ષેત્રો ઍક્સેસ કરવા માટે. 80 00:03:50,990 --> 00:03:55,490 તેથી ઉદાહરણ તરીકે, હું જાહેર કર્યું છે કહે દો મારા માળખું માહિતી ક્યાંક લખો 81 00:03:55,490 --> 00:03:59,020 મારા કાર્યક્રમ ટોચ પર, અથવા કદાચ માં હું પાઉન્ડ કર્યું કે કોઈ એચ ફાઇલ સમાવેશ થાય છે. 82 00:03:59,020 --> 00:04:03,360 હું પછી એક નવી બનાવવા માંગો છો તો કે માહિતી પ્રકાર ચલ, હું કહી શકો છો 83 00:04:03,360 --> 00:04:06,260 સ્ટ્રક્ટ કાર, મારી કાર, અર્ધવિરામ. 84 00:04:06,260 --> 00:04:11,580 હું પૂર્ણાંક કહી શકે જેમ એક્સ, અથવા શબ્દમાળા નામ અર્ધવિરામ. 85 00:04:11,580 --> 00:04:18,100 >> અહીં ડેટા પ્રકાર, સ્ટ્રક્ટ કાર છે ચલ ના નામ, મારી કાર છે 86 00:04:18,100 --> 00:04:23,770 અને પછી હું કોઈ ઓપરેટર ઉપયોગ કરી શકો છો મારી કાર વિવિધ ક્ષેત્રોમાં ઍક્સેસ કરો. 87 00:04:23,770 --> 00:04:27,494 તેથી હું મારી કાર કહી શકો છો ડોટ વર્ષ 2011 સમકક્ષ હોય છે. 88 00:04:27,494 --> 00:04:28,410 તે સંપૂર્ણપણે દંડ છે. 89 00:04:28,410 --> 00:04:34,210 તમે યાદ તો વર્ષ, એક તરીકે વ્યાખ્યાયિત કરવામાં આવ્યું હતું આ સ્ટ્રક્ટ કાર ની અંદર પૂર્ણાંક ક્ષેત્ર 90 00:04:34,210 --> 00:04:35,200 ડેટા પ્રકાર. 91 00:04:35,200 --> 00:04:39,966 સ્ટ્રક્ટ કાર માહિતી તેથી કોઇ વેરિયેબલ પ્રકાર, જેમ કે મારી કાર તરીકે, હું મારી કાર કહી શકો છો 92 00:04:39,966 --> 00:04:44,030 ડોટ વર્ષે બરાબર અને પછી સોંપી તે કેટલાક પૂર્ણાંક કિંમત, 2011. 93 00:04:44,030 --> 00:04:47,290 મારી કાર ટપકું પ્લેટ CS50 સમકક્ષ હોય છે. 94 00:04:47,290 --> 00:04:51,180 મારું કાર્ડ ટપકું odometer 50505 અર્ધવિરામ સમકક્ષ હોય છે. 95 00:04:51,180 --> 00:04:53,270 તે બધા છે સંપૂર્ણપણે દંડ છે અને તે છે 96 00:04:53,270 --> 00:04:57,802 અમે ઍક્સેસ કેવી રીતે માળખું ક્ષેત્રો. 97 00:04:57,802 --> 00:05:00,260 માળખાં, છતાં, જરૂર નથી સ્ટેક પર બનાવી શકાય છે. 98 00:05:00,260 --> 00:05:02,950 જસ્ટ અમે અન્ય કોઇ વેરિયેબલ ગમે ગતિશીલ તેમને સ્થાપિત કરી શકે છે. 99 00:05:02,950 --> 00:05:06,309 અમે એક કાર્યક્રમ હોય, તો તે કદાચ ઘણા માળખાં પેદા કરી, 100 00:05:06,309 --> 00:05:08,100 અમે કેવી રીતે ઘણા ખબર નથી અમે જરૂર જઈ રહ્યાં છો 101 00:05:08,100 --> 00:05:10,800 પછી અમે ગતિશીલ માટે જરૂર તે માળખાં ફાળવવા 102 00:05:10,800 --> 00:05:12,960 અમારા કાર્યક્રમ તરીકે ચાલી રહ્યું છે. 103 00:05:12,960 --> 00:05:16,600 અને અમે ઍક્સેસ કરવા માટે જઈ રહ્યાં છો, તેથી જો તે સંદર્ભમાં એક માળખું ક્ષેત્રો, 104 00:05:16,600 --> 00:05:20,660 અમે પ્રથમ ડિરેફરન્સ જરૂર છે કે જે રિકોલ બંધારણ નિર્દેશક, 105 00:05:20,660 --> 00:05:24,810 અને પછી અમે એક વાર ખોટો સંદર્ભ આ નિર્દેશક, તો પછી અમે ક્ષેત્રો ઍક્સેસ કરી શકો છો. 106 00:05:24,810 --> 00:05:26,830 અમે માત્ર એક હોય તો બંધારણ નિર્દેશક, 107 00:05:26,830 --> 00:05:32,120 અમે ફક્ત નિર્દેશક ટપકું ક્ષેત્ર કહી શકો છો નામ અને અમે શોધી રહ્યાં છો તે આપ મેળવો. 108 00:05:32,120 --> 00:05:34,259 Dereferencing વધારાની પગલું છે. 109 00:05:34,259 --> 00:05:36,050 તેથી કહે છે કે દો તેના બદલે previous-- ના 110 00:05:36,050 --> 00:05:38,770 ફક્ત અગાઉના ઉદાહરણ તરીકે, તેના બદલે તે જાહેર 111 00:05:38,770 --> 00:05:43,680 સ્ટેક પર, સ્ટ્રક્ટ કાર, મારા કાર, અર્ધવિરામ, હું સ્ટ્રક્ટ કાર કહે છે 112 00:05:43,680 --> 00:05:48,020 સ્ટાર, એક પર એક નિર્દેશક સ્ટ્રક્ટ કાર, મારી કાર કહેવાય 113 00:05:48,020 --> 00:05:51,250 સ્ટ્રક્ટ કાર malloc માપ સમકક્ષ હોય છે. 114 00:05:51,250 --> 00:05:54,950 કેટલા અમે માપ બહાર આકૃતિ પડશે તમારા નવા ડેટા પ્રકાર લે બાઇટ્સ. 115 00:05:54,950 --> 00:05:58,570 તમે જરૂરી માત્ર ઉપયોગ કરવાની જરૂર નથી પહોળાઈ, પૂર્ણાંક, અથવા ઘરનાં પરચૂરણ કામો, અથવા કોઈપણ કદ 116 00:05:58,570 --> 00:05:59,715 આંતરિક માહિતી પ્રકારો છે. 117 00:05:59,715 --> 00:06:02,090 આ કમ્પાઈલર પૂરતી સ્માર્ટ છે કેટલા બાઇટ્સ બહાર આકૃતિ 118 00:06:02,090 --> 00:06:04,170 તમારા નવા માળખા દ્વારા જરૂરી છે. 119 00:06:04,170 --> 00:06:09,610 તેથી હું મારી જાતને મેમરી નો એકમ malloc એક સ્ટ્રક્ટ કાર પકડી પૂરતી મોટી, 120 00:06:09,610 --> 00:06:12,410 અને હું પાછળ એક નિર્દેશક વિચાર મેમરી કે બ્લોક કરવા માટે, 121 00:06:12,410 --> 00:06:16,090 અને તે નિર્દેશક મારી કાર સોંપેલ છે. 122 00:06:16,090 --> 00:06:18,050 >> હવે, હું ઍક્સેસ કરવા માંગો છો, તો મારી કાર ક્ષેત્રો, 123 00:06:18,050 --> 00:06:22,615 હું પ્રથમ મારા કાર ખોટો સંદર્ભ ઉપયોગ કરીને ડિરેફરન્સ ઓપરેટર, સ્ટાર 124 00:06:22,615 --> 00:06:26,620 અમે પોઇન્ટર જોઇ છે વિડિઓઝ, અને પછી હું ખોટો સંદર્ભ પછી, 125 00:06:26,620 --> 00:06:32,200 પછી હું કોઈ ઓપરેટર ઉપયોગ કરી શકો છો મારી કાર વિવિધ ક્ષેત્રોમાં ઍક્સેસ કરો. 126 00:06:32,200 --> 00:06:35,490 વર્ષ 2011 જેટલી જ થાય છે ટપકું મારી કાર સ્ટાર. 127 00:06:35,490 --> 00:06:38,480 કે અસર હશે અમે આ કિસ્સામાં માંગો છો, 128 00:06:38,480 --> 00:06:41,960 અમે ગતિશીલ કર્યું કારણ કે મારી કાર ફાળવવામાં આવે છે. 129 00:06:41,960 --> 00:06:43,610 >> તે સાચું છે, છતાં, પ્રકારની નકામી છે? 130 00:06:43,610 --> 00:06:44,818 હવે 2-પગલાંની પ્રક્રિયા છે. 131 00:06:44,818 --> 00:06:47,460 હવે અમે dereference-- છે આપણે એક તારો ઓપરેટર છે, 132 00:06:47,460 --> 00:06:48,910 અને અમે કોઈ ઓપરેટર છે. 133 00:06:48,910 --> 00:06:51,660 અને તમે અપેક્ષા શકે છે, કારણ કે સી પ્રોગ્રામરો ટૂંકા રીતે પ્રેમ 134 00:06:51,660 --> 00:06:53,740 વસ્તુઓ કરવા માટે, એક છે ટૂંકા માર્ગ આ કરવા માટે. 135 00:06:53,740 --> 00:06:57,790 તીર કહેવાય અન્ય ઓપરેટર છે, જે આ પ્રક્રિયા ખૂબ સરળ બનાવે છે. 136 00:06:57,790 --> 00:07:00,750 તીર જે રીતે કામ કરે છે તે પ્રથમ dereferences 137 00:07:00,750 --> 00:07:03,560 ડાબી પર નિર્દેશક ઓપરેટર બાજુ, 138 00:07:03,560 --> 00:07:06,620 અને પછી, પછી dereferenced કર્યા ડાબી પર નિર્દેશક, 139 00:07:06,620 --> 00:07:09,620 તે જમણી બાજુ પર ક્ષેત્ર ઘટનાઓ. 140 00:07:09,620 --> 00:07:14,170 અને તેથી પહેલા અમે આ પ્રકારની હતી મારા કાર, આ તમામ સામગ્રી ડોટ સ્ટાર 141 00:07:14,170 --> 00:07:15,880 જેવા ત્યાં જઈને ઘણો હતો. 142 00:07:15,880 --> 00:07:22,040 પરંતુ અમે તેના બદલે શું કરી શકો છો આ છે મારી કાર તીર વર્ષ 2011 સમકક્ષ હોય છે. 143 00:07:22,040 --> 00:07:23,580 >> ફરી, અહીં શું થઈ રહ્યું છે? 144 00:07:23,580 --> 00:07:25,720 પ્રથમ, હું મારી કાર dereferencing છું. 145 00:07:25,720 --> 00:07:27,810 જે ફરીથી અહીં એક નિર્દેશક છે. 146 00:07:27,810 --> 00:07:31,270 પછી, કર્યા બાદ હું મારી કાર dereferenced 147 00:07:31,270 --> 00:07:35,130 પછી ક્ષેત્રો ઍક્સેસ કરી શકો છો વર્ષ, પ્લેટ, અને odometer 148 00:07:35,130 --> 00:07:40,020 માત્ર હું કરી શકે તરીકે પ્રથમ કર્યા પહેલાં મારી કાર ડિરેફરન્સ વપરાયેલ સ્ટાર, 149 00:07:40,020 --> 00:07:42,020 અને જો આ ક્ષેત્રમાં ઍક્સેસ કરવા માટે DOT. 150 00:07:42,020 --> 00:07:45,290 તેથી તમે, માળખાં હોઈ શકે છે માળખાં પોઇન્ટર હોય શકે છે, 151 00:07:45,290 --> 00:07:48,360 અને તમે ઍક્સેસ કરવા રીતો છે તે માળખાં ક્ષેત્રો, 152 00:07:48,360 --> 00:07:52,600 તમે પોઇન્ટર છે કે શું તેમને અથવા ચલો પોતાને. 153 00:07:52,600 --> 00:07:57,640 ડોટ અથવા તીર પર આધાર રાખીને ચલ કેવી રીતે જાહેર કરવામાં આવી હતી. 154 00:07:57,640 --> 00:08:00,510 હું ડો લોયડ છું, આ CS50 છે. 155 00:08:00,510 --> 00:08:01,975