[Powered by Google Translate] இந்த அணிகளை பற்றி பேசலாம். அதனால் நாம் எப்போதும் வரிசைகள் பயன்படுத்த வேண்டும்? நன்றாக நாம் உங்களுக்கு 5 மாணவர் ID கள் சேமிக்க வேண்டும் என்று ஒரு திட்டம் வேண்டும் என்று. இது 5 தனி மாறிகள் வேண்டும் நியாயமான போல் இருக்கும். நாம் ஒரு பிட் ல் பார்க்கலாம் காரணங்களுக்காக, நாம் 0 இருந்து எண்ணிக்கை தொடங்க வேண்டும். நாம் வேண்டும் மாறிகள் எண்ணாக id0, int id1, மற்றும் பல இருக்கும். நாம் ஒரு மாணவர் அடையாள நிகழ்ச்சி செய்ய வேண்டும் எந்த தர்க்கம் நகல் மற்றும் ஒட்ட வேண்டும் இந்த மாணவர் ID கள் ஒவ்வொரு. நாம், மாணவர்கள் CS50 இருக்க நடக்கும் எந்த சோதிக்க விரும்பினால் நாம் முதல் id0 போது மாணவர் பிரதிபலிக்கிறது என்று பரிசோதிக்க வேண்டும். பின்னர் அடுத்த மாணவர் ஒரே செய்ய, நாம் id0 குறியீட்டை நகலெடுத்து ஒட்டவும் வேண்டும் மற்றும் id2, 3, மற்றும் 4 id1 மற்றும் பல id0 அனைத்து நிகழ்வுகள் பதிலாக. விரைவில் நீங்கள், நாங்கள் நகலெடுத்து ஒட்ட வேண்டும் என்று கேட்க போன்ற நீங்கள் ஒரு நல்ல தீர்வு கிடைக்கும் என்று நினைத்து தொடங்க வேண்டும். இப்போது என்ன நீங்கள் 5 மாணவர் ஐடிக்கள் வேண்டும் மாறாக 7 இல்லை உணர வேண்டும்? நீங்கள், உங்கள் மூல குறியீடு மீண்டும் சென்று ஒரு id5 உள்ள சேர்க்க ஒரு id6, வேண்டும் ID கள் இந்த 2 புதிய ஐடிகளுக்கு வர்க்கம் சேர்ந்தவை என்றால் பரிசோதிக்கவும், தர்க்கம் நகலெடுத்து ஒட்டவும். ஒன்றாக இந்த ID கள் இணைக்கும் இல்லை, அதனால் கேட்டு வழி இல்லை நிரல் 6 வழியாக ஐடிக்கள் 0 இந்த செய்ய. நன்றாக இப்போது நீங்கள் 100 மாணவர் ID க்கள் உண்டு உணர. இது, தனித்தனியாக இந்த ID கள் ஒவ்வொரு அறிவிக்க வேண்டும் என்று இலட்சிய விட குறைவாக உள்ளது என்று தொடங்கும் அந்த புதிய ID கள் எந்த தர்க்கம் நகலெடுத்து ஒட்டவும். ஆனால் நாம் உறுதியாக, மற்றும் நாம் அனைத்து 100 மாணவர்கள் அதை செய்ய வேண்டும். உனக்கு தெரியாது ஆனால் உண்மையில் எத்தனை மாணவர்கள் என்ன இருக்கிறது? அங்கு சில n மாணவர்கள் மட்டும் தான் உங்கள் திட்டம் n என்று என்ன பயனர் கேட்கவேண்டும். அச்சச்சோ. இந்த நன்றாக வேலை செய்ய போவதில்லை. உங்கள் திட்டம் மட்டுமே மாணவர்கள் சில மாறா எண் செயல்படுகிறது. இந்த பிரச்சினைகள் அனைத்தையும் தீர்க்கும் வரிசைகளின் அழகு. எனவே ஒரு வரிசை என்ன? சில நிரலாக்க மொழிகளில் ஒரு வரிசை வகை, சற்று செய்ய முடியும் நீங்கள் சி அதை பார்க்க வேண்டும் போல் ஆனால் இங்கே நாம் அடிப்படை வரிசை தரவு கட்டமைப்பு கவனம் செலுத்த வேண்டும் ஒரு வரிசைக்கு நினைவகம் ஒரு பெரிய தொகுதி ஆகும். அவ்வளவுதான். நாம் இப்போது நாங்கள் சில தொகுதி வேண்டும் என்று, 10 முழுஎண்களின் ஒரு வரிசைக்கு இல்லை என்று சொல்லும் போது நினைவகம் என்று 10 தனித்தனி முழு நடத்த போதுமானதாக இல்லை. ஒரு முழு எண் 4 பைட்டுகள் என்று அனுமானித்து, இந்த அதாவது 10 முழுஎண்களின் ஒரு வரிசை நினைவகத்தில் 40 பைட்டுகள் ஒரு தொடர்ச்சியான தொகுதி ஆகும். நாம் இங்கு போக மாட்டேன் இது பலபரிமாண வரிசைகள், பயன்படுத்த கூட அது இன்னும் நினைவகம் ஒரு பெரிய தொகுதி தான். பல்பரிமாணம் குறியீடு ஒரு வசதிக்காக ஆகும். நீங்கள் முழுஎண்களின் 3 பல்பரிமாணம் வரிசை, ஒரு 3 இருந்தால் பின்னர் உங்கள் திட்டத்தை உண்மையில் வெறும் 36 பைட்டுகள் ஒரு பெரிய தொகுதியாக இந்த சிகிச்சை. முழு மொத்த எண்ணிக்கை 3 முறை 3, மற்றும் ஒவ்வொரு முழு எண் 4 பைட்டுகள் எடுத்து. ஒரு அடிப்படை உதாரணமாக ஒரு பார்க்கலாம். நாம் இங்கே அறிவித்தார் வரிசைகளின் 2 வெவ்வேறு வழிகளில் காண முடியும். நாம் தொகுக்க திட்டத்தை அவர்கள் 1 அவுட் கருத்து வேண்டும் நாங்கள் இருமுறை x அறிவிக்க இருந்து. நாம் ஒரு பிட் உள்ள அறிவிப்புக்கள் இந்த 2 வகையான இடையே வேறுபாடுகள் சில பாருங்கள் வேண்டும். இந்த வரிகளை இருவரும், அளவு N அணிவரிசை பிரகடனம் அங்கு நாம் # 10 N வரையறுக்க வேண்டும். நாம் இப்போது எளிதாக ஒரு நேர்மறையான முழு பயனர் கேட்டிருக்கலாம் எங்கள் அணியின் உறுப்புகள் ஒரு எண் என்று முழு பயன்படுத்தப்படுகிறது. முன்பு எங்கள் மாணவர் அடையாள உதாரணமாக போல், இந்த முற்றிலும் தனி 10 அறிவித்தார் போன்ற வகையான உள்ளது கற்பனை மாறிகள்; x0, x1, x2, மற்றும் xN-1 வரை இருக்கும். நாங்கள் அணி அறிவிக்க அங்கு வரிகளை தவிர்த்தல், சதுர அடைப்புக்குறிக்குள் அப்படியே கவனிக்க சுழல்கள் உள்ளே. நாம் x போன்ற ஏதாவது எழுத போது [3], இது நான், x அடைப்புக்குறி 3 வாசிக்கப்பட வேண்டும் நீங்கள் கற்பனை x3 கேட்டு போல் அதை நினைக்க முடிகிறது. என்று அடைப்புக்குறிக்குள் உள்ளே எண், அளவு N, அதாவது ஒரு வரிசை விட அறிவிப்பு நாம் குறியீட்டு அழைக்கிறேன் இதில், 0 முதல் N-1 எதுவும் இருக்க முடியாது இது என் குறியீடுகள் மொத்தம் ஆகும். இந்த உண்மையில் எவ்வாறு யோசிக்க வரிசை நினைவகம் ஒரு பெரிய தொகுதி என்று ஞாபகம். ஒரு முழு எண் 4 பைட்டுகள் என்று அனுமானித்து, முழு வரிசையில் x நினைவகம் ஒரு 40 பைட் தொகுதி ஆகும். எனவே x0 தடுப்பு முதல் 4 பைட்டுகள் குறிக்கிறது. எக்ஸ் [1] அடுத்த 4 பைட்டுகள் தான் குறிக்கிறது. இந்த x தொடக்கத்தில் எப்போதும் கண்காணிப்பதற்கான தேவைப்படுகிறது அனைத்து திட்டம் ஆகும். நீங்கள் x [400] பயன்படுத்த விரும்பினால், பிறகு இந்த திட்டம் இந்த சமமான என்று தெரிகிறது x தொடக்கத்தில் பின்னர் 1,600 பைட்டுகள் வேண்டும். நாம் இருந்து 1,600 பைட்டுகள் கிடைக்கும் Where'd? இது முழு ஒன்றுக்கு மட்டும் 400 முறை 4 பைட்டுகள் தான். செல்லும் முன், அதை உணர மிகவும் முக்கியம் என்று சி நாம் வரிசையில் பயன்படுத்தும் குறியீட்டு எந்த அமலாக்க உள்ளது. எங்கள் பெரிய தொகுதி மட்டும் 10 முழு நீளமாக உள்ளது, ஆனால் நாம் x [20] எழுத என்றால் எதுவும் நம்மை கத்துவார்கள் அல்லது x [-5]. குறியீட்டு கூட ஒரு எண் இருக்க வேண்டும் இல்லை. அது எந்த தன்னிச்சையான வெளிப்பாடு முடியும். திட்டத்தில் நாம் வரிசை முறையில் அட்டவணைக்கு லூப் இருந்து மாறி நான் பயன்படுத்த. இந்த, நான் = 0 இருந்து வரிசை நீளம் தேடுகிறது, ஒரு மிகவும் பொதுவான முறை ஆகும் பின்னர் அணியை குறியீட்டு என நான் பயன்படுத்தி. முழு வரிசையில் மீது நீங்கள் திறம்பட வளைய இந்த வழியில், மற்றும் நீங்கள் வரிசையில் ஒவ்வொரு இடத்திற்கு ஒதுக்க அல்லது சில கணக்கீடு அதை பயன்படுத்த முடியும். லூப் முதல், நான், 0 தொடங்கி, அதனால் அது அணியின் 0 இடத்தில், மதிப்பு 0 முறை 2 ஒதுக்க வேண்டும். பின்னர் நான் அதிகரிக்கும், மற்றும் நாம் மதிப்பு 1 முறை 2 வரிசையில் முதல் இடத்தை ஒதுக்க. நாம் வரிசையில் N-1 நிலைப்படுத்த வரை மீண்டும் அதனால் நான் அதிகரிக்கும் ஒதுக்க வரை மதிப்பு N-1 முறை 2. நாம் முதல் 10 கூட எண்கள் ஒரு வரிசை உருவாக்கப்பட்டது. ஒருவேளை evens x விட மாறி ஒரு பிட் நல்ல பெயர் இருந்திருக்கும், ஆனால் அந்த மறைத்துவிடலாம் கொடுத்திருப்பேன். லூப் இரண்டாவது பிறகு தான் நாம் ஏற்கனவே வரிசைக்கு உள்ளே சேமிக்கப்படும் என்று மதிப்புகள் அச்சிடுகிறது. வரிசை அறிவிப்புக்கள் இரண்டு வகையான இயங்குவதாக பார்க்கலாம் மற்றும் நிரல் வெளியீடு பாருங்கள். இதுவரை நாம் பார்க்க முடியும் என, நிரல் அறிவிப்புக்கள் இரண்டு வகையான அதே வழியில் செயல்படும். நாம் என் நிறுத்த முதல் சுழற்சி மாற்ற என்றால் அது கூட என்ன நடக்கிறது என்று பார்க்கலாம் மாறாக 10,000 என்று. வரிசை இறுதியில் அப்பால் வழி. Oops. ஒருவேளை நீங்கள் இந்த பார்த்திருக்கிறேன். ஒரு அடுக்கு தவறு உங்கள் நிரல் செயலிழந்தது பொருள். நீங்கள் தொட்டு கூடாது நினைவக பகுதிகளில் தொட்டு போது இந்த தொடங்களாம். இங்கே நாம், x தொடக்கத்தில் அப்பால் 10,000 இடங்களில் தொட்டு இதில் தெளிவாக நாம் தொடுவது கூடாது நினைவகத்தில் ஒரு இடமாகும். நமக்கு மிக மிக பெரும்பாலும் தற்செயலாக, அதற்கு பதிலாக N 10,000 போட முடியாது நாம் போன்ற நுட்பமான ஏதாவது செய் ஆனால் எழுத குறைவாக அல்லது N சமமாக என்ன பதிலாக ஒரு வளைய நிலையில் என் குறைவான ஒரு அணி மட்டுமே 0 இருந்து N-1 குறியீடுகள் என்று ஞாபகம், இதில் குறியீட்டு N வரிசை இறுதியில் அப்பால் உள்ளது என்று அர்த்தம். திட்டம் இந்த வழக்கில் செயலிழக்க போகக்கூடும், ஆனால் அது இன்னும் ஒரு பிழை உள்ளது. உண்மையில், இந்த பிழை, அது சொந்த பெயர், மிகவும் பொதுவான 1 பிழை ஒரு இனிய. அடிப்படைகளை இது என்று. எனவே வரிசை அறிவிப்புக்கள் 2 வகைகள் இடையே பெரிய வேறுபாடுகள் என்ன? நினைவகம் பெரிய தொகுதி சென்று அங்கு ஒரு வித்தியாசம். முதல் பிரகடனத்தில், நான், அடைப்புக்குறி-வரிசை வகை இதில் அழைக்கிறேன் இந்த என்றாலும் இல்லை, ஒரு வழக்கமான பெயர் பொருள் இது ஸ்டேக்கில் போம். நான் சுட்டிக்காட்டி, வரிசை வகை அழைக்கிறேன் இரண்டாவது, அதே சமயம், அதை குவியல் மீது போம். இந்த போது செயல்பாடு வருமானம், அடைப்புக்குறி வரிசை தானாக deallocated என்று அர்த்தம் நீங்கள் explicitily சுட்டிக்காட்டி வரிசையில் இலவச அழைக்க வேண்டும் என, அதேசமயம் அல்லது வேறு ஒரு நினைவக கசிவு இல்லை. கூடுதலாக, அடைப்புக்குறி வரிசை உண்மையில் ஒரு மாறி உள்ளது. இது முக்கியமானது. அது ஒரு குறியீடு உள்ளது. நீங்கள் தொகுப்பி நீங்கள் தேர்ந்தெடுக்கும் ஒரு நிலையான என நினைக்க முடியாது. இந்த, நாம் x + அடைப்புக்குறி வகை போன்ற ஏதாவது செய்ய முடியாது இந்த சுட்டியை வகை செய்தபின் கச்சிதமாக என்றாலும். சுட்டிக்காட்டி வகை ஒரு மாறி உள்ளது. சுட்டிக்காட்டி வகை, நாம் நினைவகம் 2 தனி தொகுதிகள் உள்ளன. மாறி x தன்னை, ஸ்டாக் சேமிக்கப்படும் மற்றும் ஒரு ஒற்றை சுட்டிக்காட்டி உள்ளது ஆனால் நினைவகம் பெரிய தொகுதி குவியல் சேகரிக்கப்படுகின்றன. ஸ்டேக்கில் மாறி x வெறும் முகவரியை சேமித்து குவியல் நினைவகத்தை பெரிய தொகுதி. இந்த ஒரு உட்குறிப்பு ஆபரேட்டர் அளவு உள்ளது. நீங்கள் அடைப்புக்குறி வரிசை அளவு கேட்டால், அது, நீங்கள் நினைவகத்தை பெரிய தொகுதி அளவை தரும் 40 பைட்டுகள் போல, ஆனால் நீங்கள் வரிசைக்கு சுட்டிக்காட்டி வகை அளவு கேட்டால், அதை நீங்கள் சாதனம் மட்டும் 4 பைட்டுகள் வாய்ப்பு இது மாறி x தன்னை, அளவு கொடுக்கும். சுட்டிக்காட்டி, வரிசை வகை பயன்படுத்தி, அதை நேரடியாக கேட்க முடியாது நினைவகம் பெரிய தொகுதி அளவு. நாம் மிகவும் அரிதாகவே அளவு வேண்டும் என்பதால் இந்த வழக்கமாக மிகவும் ஒரு தடை அல்ல பெரிய நினைவகம் தொகுதி, மற்றும் நாம் வேண்டும் என்றால் நாம் பொதுவாக கணக்கிட முடியாது. இறுதியாக, அடைப்புக்குறி வரிசை வரிசையாக ஆரம்பிக்கும் ஒரு குறுக்குவழி எங்களுக்கு வழங்க நடக்கிறது. நாம் குறுக்குவழி initilization பயன்படுத்தி முதல் 10 கூட முழு எழுத எப்படி என்று பார்ப்போம். சுட்டிக்காட்டி வரிசை மூலம், இந்த மாதிரி ஒரு குறுக்குவழி செய்ய ஒரு வழி இல்லை. இது நீங்கள் அணிகளை கொண்டு என்ன செய்ய முடியும் ஒரு அறிமுகம் ஆகும். அவர்கள் நீங்கள் எழுத ஒவ்வொரு நிரல் காண்பிக்கப்படும். வட்டம் இப்போது மாணவர் ID கள் எடுத்துக்காட்டாக செய்து ஒரு சிறந்த வழி பார்க்க முடியும் வீடியோ தொடக்கத்தில் இருந்து. என் பெயர் ராப் Bowden, மற்றும் இந்த CS50 உள்ளது.