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 ஆனால் கட்டமைப்புகள், அல்லது அடிக்கடி, structs போன்ற குறிப்பிடப்படுகிறது 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 Struct, என்று குறிக்கிறது என்று சொல் 31 00:01:27,400 --> 00:01:30,270 நான் இங்கே ஒரு புதிய தரவு வகை உருவாக்க நான் என்று. 32 00:01:30,270 --> 00:01:33,860 குறிப்பாக, தரவு வகை பெயர் நாம் பார்க்க வேண்டும் என,, struct கார் இருக்க போகிறது. 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 மீண்டும், இங்கே தரவு வகை போகிறது , struct கார், இல்லை வெறும் கார் இருக்க வேண்டும். 38 00:01:50,590 --> 00:01:53,060 ஆனால் நீங்கள் வெவ்வேறு இருந்தால் நீங்கள் பல structs உருவாக்க என்றால் 39 00:01:53,060 --> 00:01:56,950 அதே திட்டத்தில், நீங்கள் வேண்டும் , struct மற்றும் struct வேறுபடுத்தி. 40 00:01:56,950 --> 00:02:00,140 எனவே struct கார், நான் வேண்டும் மாணவர் struct, எடுத்துக்காட்டாக, 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 அது ஒரு மிகவும் பொதுவான உட்தொடாச்செயற் தான் தவறு, ஒரு செயல்பாடு, ஏனெனில், 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 நாம் ஒரு வரையறுக்க வேண்டும் ஒரு செயல்பாடு உள்ளே struct, 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 , struct கார், என் கார், அரைப்புள்ளி. 84 00:04:06,260 --> 00:04:11,580 நான் எண்ணாக சொல்ல முடியும் போல் x, அல்லது சரம் பெயர் அரைப்புள்ளி. 85 00:04:11,580 --> 00:04:18,100 >> இங்கே தரவு வகை,, struct கார் ஆகிறது மாறி பெயரை, என்னுடைய கார் 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 நீங்கள் நினைவு என்றால் வருடம், ஒரு வரையறுக்கப்பட்டுள்ளது, இந்த struct கார் உள்ளே முழு துறையில் 90 00:04:34,210 --> 00:04:35,200 தரவு வகை. 91 00:04:35,200 --> 00:04:39,966 , Struct கார் தரவு எனவே எந்த மாறி வகை, போன்ற என் கார், நான் என் கார் சொல்ல முடியும் 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 நாம் முதலில், dereference வேண்டும் என்று திரும்ப அமைப்பு சுட்டிக்காட்டி, 105 00:05:20,660 --> 00:05:24,810 பின்னர் நாம் ஒரு முறை, dereference சுட்டிக்காட்டி, நாங்கள் துறைகள் அணுக முடியும். 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 ஸ்டாக்,, struct கார், என் கார், அரைப்புள்ளி, நான், struct கார் சொல்கிறேன் 112 00:05:43,680 --> 00:05:48,020 நட்சத்திரம், ஒரு ஒரு சுட்டிக்காட்டி , struct கார், என் கார் என்று அழைக்கப்படும் 113 00:05:48,020 --> 00:05:51,250 , struct கார் 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 ஒரு struct கார் நடத்த போதுமான பெரிய, 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 நான் முதல் என் கார், dereference பயன்படுத்தி dereference ஆபரேட்டர், நட்சத்திரம் 124 00:06:22,615 --> 00:06:26,620 நாம் சுட்டிகள் இருந்து பார்த்த வீடியோக்கள், பின்னர் நான் dereference பிறகு, 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 அதனால் முன்பு நாங்கள் இந்த வகையான இருந்தது என் கார், இந்த பொருட்கள் அனைத்தையும் dot 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 நான் முடிந்தவரை முதல் முன் என் கார், dereference பயன்படுத்தப்படும் நட்சத்திரம், 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