[Powered by Google Translate] [வாரம் 4]
[டேவிட் ஜே Malan] [ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது.] [CS50.TV]
>> சரி, இந்த CS50 தான், இந்த வாரம் 4 தொடக்கத்தில் இல்லை
இந்த மெதுவான முடியும் வரிசையாக்க படிமுறைகள் ஒன்றாகும்.
இது ஒரு நாங்கள் அங்கே பார்த்த அந்த அது?
என்று, (n ^ 2) + கூட்டுத்தொகையாக பெரிய ஓ பொருட்டு, குமிழி வரிசையாக்கம் இருந்தது
உண்மையில் நாம் என்று தெரிகிறது இந்த உலகில் மட்டுமே அல்ல
என்ன குமிழி வரிசையாக்கம் அல்லது அதன் இயங்கும் நேரம்.
உண்மையில், இந்த கூகிள் எரிக் ஸ்மித் பேட்டியில் அவர்
முன்னாள் செனட்டர் பராக் ஒபாமா ஒரு சில ஆண்டுகளுக்கு முன்பு.
>> இப்போது, செனட்டர், நீங்கள், Google இல் இருக்கிறோம்
நான் ஒரு வேலை பேட்டியில் என ஜனாதிபதி என்று விரும்புகிறேன்.
இப்போது, அது ஜனாதிபதியாக வேலை பெற கடினமாக உள்ளது, நீங்கள் இப்போது rigors மூலம் செல்கிறோம்.
இது கூகிள் ஒரு வேலைக்கு கூட கடினம்.
, நாம் கேள்விகள், மற்றும் நமது வேட்பாளர்கள் கேள்விகளை கேட்க
இந்த ஒரு லாரி சுவிம்மர் இருந்து வருகிறது.
உங்களுக்கு நான் விளையாடினேன் நான் நினைக்கிறேன்? அது இங்கு தான்.
ஒரு மில்லியன் 32 பிட் முழு வரிசைப்படுத்த மிக சிறந்த வழி என்ன?
[சிரிப்பு]
நன்கு
நான் வருந்துகிறேன். >> இல்லை, இல்லை, இல்லை, இல்லை.
நான் குமிழி வரிசையாக்கம் செல்ல தவறான வழி என்று நான் நினைக்கிறேன்.
>> அவரை இந்த யார் சொன்னது, வாருங்கள்!
கடந்த வாரம், நாம் குறைந்த பட்சம் ஒரு நாள், குறியீடு இருந்து முறித்து கொண்டு நினைவுகூர
மேலும் பொதுவாக தீர்க்கும் சில உயர் மட்ட கருத்துக்கள் மற்றும் சிக்கலை மையமாக தொடங்கியது
தேடி மற்றும் வரிசையாக்க சூழலில்,
நாம், நாம் கடந்த வாரம் இந்த பெயர் அடிப்பேன் என்று ஒன்று அறிமுகப்படுத்தப்பட்டது
ஆனால் எந்த அறிகுறியும் குறியீடு, பிக் ஓ, பெரிய ஒமேகா,
மற்றும் சில நேரங்களில் பெரிய தீட்டா குறியீடு, மற்றும் இந்த வெறுமனே வழிகள் இருந்தன
படிமுறைகளின் இயங்கும் நேரம் விவரிக்கும்,
அதை இயக்க ஒரு வழிமுறையை எடுத்து எவ்வளவு நேரம்.
>> நீங்கள் அளவு அடிப்படையில் நீங்கள் இயங்கும் நேரம் பேசினார் என்பதை நினைவு இருக்கலாம்
நாம் பொதுவாக பிரச்சனை இருக்கலாம் என்ன, n என்று எந்த உள்ளீடு, ஒரு,
அங்கு n, அறையில் மக்கள் எண்ணிக்கை
ஒரு தொலைபேசி புத்தகத்தில் பக்க எண், மற்றும் நாம் விஷயங்கள் எழுத தொடங்கியது
ஓ போன்ற (n ^ 2) அல்லது O (n) அல்லது ஓ (n log n),
மற்றும் கணித மிக மிக செய்தபின் வேலை செய்யவில்லை கூட
அதை n என்று ² - n / 2 அல்லது அப்படி ஏதாவது
நாம் பதிலாக, கீழ் வரிசை சொற்கள் சில எறியுங்கள் என்று
மற்றும் ஊக்க நாம் உண்மையில் ஒரு வேண்டும் என்று உள்ளது
மதிப்பிடும் நோக்கம் வழி வகை
திட்டங்கள் செயல்பாடு அல்லது வழிமுறைகள் செயல்திறனை
அந்த நாள் இறுதியில், உதாரணமாக, இல்லை
உங்கள் கணினியின் வேகத்தை இன்று.
>> உதாரணமாக, நீங்கள் குமிழி வரிசையாக்கம் செயல்படுத்த வேண்டும்,
அல்லது நீங்கள், இன்று கணினியில் வகையான அல்லது தேர்வு வகையான ஒன்றாக்க செயல்படுத்த
ஒரு 2 GHz கணினி, மற்றும் நீங்கள், அதை இயக்க
இது ஒரு 3 GHz அங்கு அடுத்த ஆண்டு, நொடிகள் சில எண்ணை எடுக்கும்
அல்லது 4 GHz கணினி, மற்றும் நீங்கள் அந்த "ஓ, என் வழிமுறையை கோர வேண்டும்
உண்மையில் அந்த விஷயத்தில் தெளிவாக இல்லை போது ", இருமுறை வேகமாக உள்ளது.
அது வன்பொருள் வேகமாக சென்றிருக்கிறது, ஆனால் உங்கள் கணினியில்
, மற்றும் நாம் உண்மையில் போன்ற விஷயங்களை எறியுங்கள் விரும்பவில்லை
2 மடங்குகள் அல்லது 3 மடங்குகள் அதை விளக்கும் போது
எவ்வளவு வேகமாக அல்லது எப்படி மெதுவாக ஒரு வழிமுறையாகும் மற்றும் உண்மையில் நான் கவனம்
n அல்லது அதன் சில காரணி, அன்று
சில அதிகார அதின் கடந்த வாரம் இருந்து வகையான விஷயத்தில் போல்.
மற்றும் ஒன்றிணைப்பு வகையான உதவியுடன் அந்த நினைவு
நாம் குமிழி வரிசையாக்கம் மற்றும் தேர்வு வகையான விட மிகவும் சிறப்பாக செய்ய முடிந்தது
மேலும் செருகும் வரிசையாக்கம்.
>> நாங்கள், மீண்டும் n log n கீழே வைத்து, மற்றும்
பதிவு n பொதுவாக வளரும் என்று ஒன்று குறிக்கிறது என்று நினைவு
மெதுவாக பின்னர் n, அதனால் n log n இதுவரை நன்றாக இருந்தது
அதை n ² விட குறைவாக தான்.
ஆனால் ஒன்றிணைப்பு வகையான உடன் n அடைய n பதிவு
நாம் அந்நிய என்று ஒரு யோசனை அடிப்படை கிருமி என்ன
நாங்கள் வாரம் 0 மீண்டும் பயன்படுத்தியது என்று?
எப்படி நாம் ஒன்றிணைப்பு வகையான கொண்டு புத்திசாலித்தனமாக வரிசையாக்க பிரச்சினை சமாளிக்க?
ஒருவேளை, முக்கிய பார்வையை என்ன?
யாரும்.
சரி, பின் ஒரு முடிவை எடுக்க வேண்டும்.
உங்கள் சொந்த வார்த்தைகளில் வகையான ஒன்றாக்க விவரிக்க.
இது எப்படி வேலை?
சரி, நாம் வாரம் 0 திரும்பி வரிசையை வேண்டும்.
சரி, சரி.
[செவிக்கு புலப்படாமல்-மாணவர்]
நல்ல, சரி, நாங்கள் 2 துண்டுகளாக எண்கள் வரிசையில் பிரித்து.
, நாம் அந்த துண்டுகள் ஒவ்வொரு வரிசைப்படுத்தப்பட்ட, மற்றும் நாம் இன்னும் இணைக்கப்பட்டது
இந்த பெரிய என்று ஒரு பிரச்சனை எடுத்து முன் நாம் இந்த கருத்தை நான் பார்த்திருக்கிறேன்
இந்த பெரிய அல்லது இந்த பெரிய என்று ஒரு பிரச்சனை அதை வரை நறுக்குவதில்.
>> தொலைபேசி புத்தகம் எடுத்துக்காட்டாக நினைவு.
, முன்பு வாரங்கள் சுய எண்ணும் வழிமுறை நினைவு
எனவே ஒன்றாக்க வகையான இங்கே இந்த சூடோகுறியீடு சுருக்கமாக.
நீங்கள் n உறுப்புகள் கொடுக்கப்பட்ட போது, முதலில் நல்லறிவு சோதனை இருந்தது.
N <2 பின்னர் எதுவுமே செய்யவில்லை என்றால்
n <2 பின்னர் n வெளிப்படையாக 0 அல்லது 1 என்று ஏனெனில்,
அது ஒன்று தான் என்றாலும் அதனால் 0 அல்லது 1 வரிசைப்படுத்த ஒன்றுமில்லை.
நீங்கள் முடித்துவிட்டீர்கள்.
உங்கள் பட்டியலில் ஏற்கனவே எளிதில் பிரிக்கப்பட்டுள்ளது.
ஆனால் நீங்கள் 2 அல்லது அதற்கு மேற்பட்ட கூறுகள் கிடைத்துவிட்டது மற்றபடி நீங்கள் போய் அவர்களை பிரித்து
2 பகுதிகளாக, இடது மற்றும் வலது.
அந்த பாதிகளுக்கு ஒவ்வொரு வரிசைப்படுத்த, பின்னர் வரிசையாக்கம் பாதிகளுக்கு ஒன்றாக்க.
ஆனால் இங்கே பிரச்சினை நாம் punting போல முதல் பார்வையில் இந்த நினைக்கிறார் என்று.
நான் இந்த n உறுப்புகள் வரிசைப்படுத்த நீங்கள் கேட்டுள்ளீர்கள் இந்த என்று ஒரு சுற்று வரையறை இல்லை
நீங்கள் "சரி, சரி, நாம் அந்த n / 2 அந்த n / 2 உறுப்புகள் அடுக்க வேண்டும்" நீ என்னிடம் சொன்னாய்
பிறகு என் அடுத்த கேள்வி போகிறது "எப்படி n / 2 உறுப்புகள் வரிசைப்படுத்துவது, சரியா?"
>> ஆனால் இந்த திட்டம் அமைப்பு,
இந்த தளத்தை வழக்கு உள்ளது, ஏனெனில், அதனால், பேச
n உடனடியாக 2 மீண்டும் போன்ற சில நிலையான மதிப்பு <இருந்தால் சொல்வது இந்த சிறப்பு.
அதே சுற்று பதில் உடன் பதில் இல்லை.
இந்த செயல்முறை, இந்த cyclicity இறுதியில் முடிக்கும்.
நான் "வரிசை இந்த n உறுப்புகள்," நீங்கள் கேட்கும் நீங்கள், சொன்னால் "சரி, இந்த n / 2 வரிசைப்படுத்த"
நீங்கள் "சரி, அப்படி இந்த n / 4, n / 8, n/16,", என்று
இறுதியில் நீங்கள் ஒரு பெரிய போதுமான எண்ணிக்கையில் பிரித்து விடுவேன்
நீங்கள், நீங்கள் எந்த இடத்தில், வெறும் 1 உறுப்பு இடது வேண்டும் என்று
"இதோ, இங்கே ஒரு வரிசைப்படுத்தப்பட்ட ஒற்றை உறுப்பு ஆகும்."
இந்த வழிமுறையின் திறமை இங்கு உண்மையில் இருந்து பெற வேண்டும்
அந்த முறை இந்த தனித்தனியாக பிரிக்கப்பட்டு பட்டியல்கள் அனைத்து வேண்டும்,
தேவையில்லாத தெரிகிறது எந்த அளவு 1, இல்லாத அனைத்து,
நீங்கள் அவர்களை இணைத்தல் மற்றும் இணைத்தல் துவக்க முறை
ராப் வீடியோ ஒரு இறுதியாக வரிசையாக்கம் பட்டியலில் செய்தது போல் நீங்கள் இறுதியாக கட்டமைக்க.
>> ஆனால் இந்த யோசனையை இதுவரை வரிசையாக்க அப்பால் நீண்டுள்ளது.
மறுநிகழ்வு என்று அழைக்கப்படும் இந்த திட்டத்தில் பதிக்கப்பட்ட இந்த யோசனை, இல்லை
நீங்கள் ஒரு திட்டம் ஆகும் அதன்படி யோசனை,
மற்றும் நீங்கள் அழைக்க சில சிக்கலை தீர்க்க,
அல்லது, நீங்கள் ஒரு செயல்பாடு இருக்கும் நிரலாக்க மொழிகளை சூழலில் வைத்து
ஒரு பிரச்சினையை தீர்ப்பதற்கு பொருட்டு, நீங்கள் விழாவில் உங்களை அழைக்க
மீண்டும் மீண்டும், மீண்டும், ஆனால் நீங்கள் செயல்பாடு
உங்களை எண்ணற்ற பல முறை அழைக்க முடியாது.
இறுதியாக நீங்கள், ஏன் பேச, கீழே அவுட் வேண்டும்
மற்றும் நிதி சில விதமாகவோ அடிப்படை நிபந்தனை
இந்த இடத்தில் மிகவும் உங்களை அழைத்து நிறுத்த என்று முழு செயல்முறை
இறுதியாக உண்மையில் நிறுத்த.
இந்த உண்மையில் தொடரை வேண்டும், என்ன அர்த்தம்?
>> நாம், என்ன, ஒரு எளிய, சிறிய உதாரணம் செய்ய முடியும் என்றால், நாம் பார்ப்போம்
இங்கு மேடையில் என்னுடன் 3 பேர், யாராவது வசதியான என்றால்.
வரை, 2 மற்றும் 3 1, வரும்.
நீங்கள் 3 இங்கே வர விரும்பினால்.
நீங்கள் ஒரு வரியில் இங்கே என் பக்கத்தில் நிற்க வேண்டும் என்றால், ஒரு வேளை கையில் சிக்கல்
மிக எளிதில் இங்கு இருக்கும் மக்கள் எண்ணிக்கையை.
ஆனால் வெளிப்படையாக, நான் இந்த எண்ணிக்கை உதாரணங்கள் மிகவும் சோர்வாக இருக்கிறேன்.
இந்த சில நேரம், 1, 2, மற்றும் டாட், டாட், டாட் நடக்கப்போகிறது.
அது எப்போதும் எடுத்து நடக்கிறது.
நான் உதவியுடன் முற்றிலும் பந்தயம் இந்த பிரச்சினை என்ன, உங்கள் பெயர்? மாறாக விட்டோம்
சாரா. >> சாரா, சரி.
கெல்லி. >> கெல்லி மற்றும்?
>> வில்லி. >> வில்லி, சாரா, கெல்லி, மற்றும் வில்லி.
இப்போது நான் யாரோ கேள்வி கேட்டார்
எத்தனை பேர் இந்த மேடையில் வரை, மற்றும் எனக்கு எதுவும் தெரியாது.
இந்த ஒரு நாள் நீண்ட பட்டியல் உள்ளது, எனவே அதற்கு பதிலாக நான் இந்த தந்திரம் செய்ய போகிறேன்.
நான், வேலை மிக செய்ய எனக்கு அடுத்த நபர் ask போகிறேன்
ஒருமுறை அவர் வேலை பெரும்பாலான செய்து செய்யப்படுகிறது
நான் முடிந்தவரை வேலை குறைந்தது அளவு என்ன செய்ய போகிறாய் மற்றும் 1 சேர்க்க
எனவே, இங்கே நாம் என்ன சொன்னாலும் அவர் பதில் வேண்டும்.
நான் மேடையில் எப்படி பல மக்கள் கேட்டு.
எத்தனை பேர் நீங்கள் இடது நிலையில் உள்ளன?
சரி >>? எனக்கு இடது, ஆனால் ஏமாற்ற வேண்டாம்.
அது சரியானது என்று, நல்லது, ஆனால் நாம் இந்த தர்க்கம் தொடர விரும்பினால்
நீங்கள் இதேபோல் நீங்கள் இடது பந்தயம் இந்த சிக்கல் வேண்டும் என்று தான் நாம் கருதி கொள்வோம்,
இதனால் பதில் விட நேரடியாக போய் வெறும் பக் அனுப்ப.
ஓ, எனக்கு இடது எத்தனை பேர்?
இடது எத்தனை பேர்?
1.
[சிரிப்பு]
சரி, இவ்வளவு 0, அதனால் என்ன இப்போது வில்லி செய்தது
உங்கள் பதில் 0 என்று இந்த திசையில் திரும்பி வருகிறது.
இப்போது, நீங்கள் என்ன செய்ய வேண்டும்? >> 1.
சரி, நீங்கள் 1, நீ என்ன, "சரி, நான் 1 சேர்க்க போகிறேன்
செய்ய என்ன வில்லி எண்ணிக்கை இருந்தது, "இவ்வளவு 1 + 0.
சரி உங்கள் பதில் நீ இப்போது 1 நீங்கள் இப்போது
1. >> மேலும் என்னுடைய 2 இருக்கும்.
, நீ, 1 முந்தைய பதில் நல்ல எடுத்து
நீ என்ன செய்ய வேண்டுமோ வேலை குறைந்த அளவு சேர்த்து, எந்த +1 ஆகும்.
நீங்கள் இப்போது 2 வேண்டும், மற்றும் நீங்கள் என்னை எந்த மதிப்பு கொடு?
3, நான், மன்னிக்கவும், 2 அர்த்தம்.
நல்ல.
>> சரி, நாம் இடது 0 இருந்தது.
, நாம் 1 இருந்தது, மற்றும் நாம் 2 சேர்க்க
இப்போது நீங்கள், என்னை எண் 2 ஒப்படைத்தார்
அதனால் நான் 3, +1, சரி, சொல்கிறேன்.
இந்த மேடையில் எனக்கு அடுத்த நின்று 3 பேர், உண்மையில் அங்கு
அதனால் நாம் தெளிவாக, மிக நேர்க்கோட்டில் இதை செய்திருக்க முடியும்
வெளிப்படையான முறையில் மிகவும், ஆனால் நாம் உண்மையில் என்ன செய்தாய்?
நாம் ஆரம்பத்தில் அளவு 3 ஒரு பிரச்சினை நடந்தது.
நாம், அளவு 2 ஒரு பிரச்சனை அதை முறிந்தன
பின்னர் அளவு 1 ஒரு பிரச்சனை, மற்றும் அடிப்படை வழக்கில் இறுதியாக
உண்மையில், ஓ, அங்கு யாரும், அங்கு
அந்த சமயத்தில் வில்லி, ஒரு விதமாகவோ பதில் இரண்டு முறை திறம்பட திரும்பினார்
இரண்டாவது ஒரு பின், மேல் குதுகலித்தது, வரை குதுகலித்தது, வரை குதுகலித்தது
பின்னர் இந்த கூடுதல் 1 சேர்ப்பதன் மூலம்
நாம் மறுநிகழ்வு இந்த அடிப்படை கருத்தை செயல்படுத்தப்படும்.
>> இப்போது, இந்த வழக்கில் அது உண்மையில் ஒரு பிரச்சினை இல்லை
இன்னும் திறமையுடன் நாம் இதுவரை பார்த்த.
ஆனால் நாம் இதுவரை மேடையில் செய்துவிட்டேன் வழிமுறைகளை பற்றி நினைக்கிறேன்.
நாம், சாக்போர்டு காகிதம் 8 துண்டுகள் இருந்தது
வீடியோ சீன் எண் 7 தேடிக்கொண்டிருந்த, அவர் உண்மையில் என்ன இருக்கிறது?
நன்றாக, அவர் பிளவை எந்த விதமான செய்ய வெற்றி பெறவில்லை.
அவர் மறுநிகழ்வு எந்த விதமான செய்யவில்லை.
மாறாக அவர் தான் இந்த நேரியல் வழிமுறை இல்லை.
ஆனால் நாம் மேடையில் வரிசைப்படுத்தப்பட்ட எண்கள் யோசனை அறிமுகப்படுத்தப்பட்டது போது கடந்த வாரம் வாழ
நாம், நடுத்தர செல்லும் இந்த உள்ளுணர்வு என்று
எந்த புள்ளியில் நாம், அளவு 4 அல்லது அளவு 4 மற்றொரு பட்டியலில் ஒரு சிறிய பட்டியலில் இருந்தது
மற்றும் நாம் சரியான அதே பிரச்சனை, நாம் திரும்ப திரும்ப, திரும்ப திரும்ப, திரும்ப திரும்ப.
வேறுவிதமாக கூறினால், நாம் recursed.
எங்களுடன் மறுநிகழ்வு ஆர்ப்பாட்டம் இங்கே நம் 3 தொண்டர்கள் மிகவும் நன்றி.
>> நாம் இப்போது ஒரு சிறிய மேலும் கான்கிரீட் இந்த செய்ய முடியாது என்று பார்ப்போம்,
மீண்டும் நாம் மிகவும் எளிதாக செய்ய முடியும் என்று ஒரு சிக்கலை தீர்ப்பதில்
ஆனால் நாம் இந்த அடிப்படை கருத்தை செயல்படுத்த ஒரு படிக்கல்லாகும் அதை பயன்படுத்த வேண்டும்.
நான், எண்கள் ஒரு கொத்து அளவில் கூட்டுத்தொகை கணக்கிட விரும்பினால்
உதாரணமாக, நீங்கள் எண் 3 ல் வெற்றி என்றால்,
நான், நீ சிக்மா 3 மதிப்பு கொடுக்க வேண்டும்
அதனால் 3 தொகை + 2 + 1 + 0.
நான், பதில் 6 திரும்ப பெற வேண்டும்
எனவே நாம் இந்த சிக்மா செயல்பாடு, இந்த கூட்டுத்தொகை செயல்பாட்டை செயல்படுத்த வேண்டும்
என்று, மீண்டும், உள்ளீடு எடுத்து, பின்னர் கூட்டுத்தொகை கொடுக்கிறது
கீழே 0 என்று பல வழி.
நாம் சரியான, மிக எளிதாக செய்ய முடியும்?
நாம், வளைவு அமைப்பு சில வகையான செய்யலாம்
என்னை போய் இந்த துவங்கட்டும்.
>> Stdio.h அடங்கும்.
இங்கே வேலை என்னை முக்கிய மீண்டும் நானே எடுத்து விடுங்கள்.
நாம் sigma.c இந்த சேமிக்க.
நான் இங்கே போக போகிறேன், நான், ஒரு முழு எண்ணாக n அறிவிக்க போகிறேன்
நான் பயனர் ஒத்துழைக்க இல்லை போது பின்வரும் செய்ய போகிறேன்.
எனக்கு ஒரு நேர்மறையான எண் கொடுக்கப்பட்ட போது
என்னை போய் n = GetInt அவர்கள் கேட்கும் விட,
மேலும், எனக்கு இன்னும் என்ன செய்ய வேண்டும் என்று சில வழிமுறைகளை வழங்கட்டுமா
எனவே printf ("நேர்மறை முழு தயவு செய்து").
அந்த நேரத்தில் நாம் வரி 14 வெற்றி, அதனால் இந்த ஒப்பீட்டளவில் எளிமையான தான் ஏதாவது
நாம் இப்போது n இல் மறைமுகமாக ஒரு நேர்மறை முழு எண்ணாக இருக்கிறது.
>> இப்போது அது ஏதாவது செய்வோம்.
என்னை போய் கூட்டுத்தொகை கணக்கிட விட, மிகவும் எண்ணாக கூட்டுத்தொகையாக = சிக்மா (n).
சிக்மா ஒரு கூட்டுத்தொகை உள்ளது, அதனால் நான் ஆர்வலராக வழியில் அதை எழுதும்.
நாம் அங்கு சிக்மா அழைக்கிறேன்.
அந்த தொகை தான், இப்போது நான், இதன் விளைவாக அவுட் அச்சிட போகிறேன்
printf (கூட்டுத்தொகையாக "கூட்டுத்தொகையாக ஈ, \ n% ஆகும்").
பின்னர் நான் நல்ல நடவடிக்கை 0 தருகிறேன்.
நாம், சுவாரஸ்யமான பகுதி தவிர இந்த திட்டம் தேவை என்று நான் செய்தேன்
இது உண்மையில் சிக்மா செயல்பாட்டை செயல்படுத்த உள்ளது.
>> என்னை கீழே இறங்கி போய், என்னை செயல்பாடு சிக்மா அறிவிக்க விட்டு.
அது, வகை முழு தான் என்று ஒரு மாறி செல்ல இருக்கிறது
என்ன தரவு வகை நான் சிக்மா இருந்து மறைமுகமாக திரும்ப வேண்டுமா?
Int, நான் அதை வரி 15 என் எதிர்பார்ப்புகளை பொருத்த வேண்டும் என்பதால்.
இங்கே என்னை போய் இந்த செயல்படுத்த அனுமதி
ஒரு அழகான நேர்மையான வழியில்.
>> தான் போய் எண்ணாக கூட்டுத்தொகையாக = 0 சொல்கிறேன்,
இப்போது நான் இங்கே வளைய ஒரு சிறிய வேண்டும் போக போகிறேன்
என்று, இப்படி ஏதாவது சொல்ல நடக்கிறது
கூடுதல் + = நான் (! நான் <= எண் நான் + எண்ணாக நான் = 0).
பின்னர் நான் தொகை திரும்ப போகிறேன்.
நான் வழிகளில் எந்த எண்ணை இந்த செயல்படுத்தப்படும்.
நான் ஒரு வளையம் பயன்படுத்தப்படுகிறது.
நான், நான் உண்மையில் விரும்பினால் தொகை மாறி பயன்படுத்தி தவிர்க்கப்பட்டது
ஆனால் குறுகிய, நாம் தான் நான் இல்லை என்றால் தவறு கூட்டுத்தொகையாக 0 அறிவிக்கிறது என்று ஒரு செயல்பாடு இருக்கும்.
அது, எண் மூலமாக 0 இருந்து செயல்களை
மற்றும் ஒவ்வொரு மறுசெய்கையும் அது கூட்டுத்தொகையாக என்று தற்போதைய மதிப்பை கூட்டுகிறது பின்னர் தொகையை கொடுக்கிறது.
>> இப்போது, இங்கே ஒரு சிறிய தேர்வுமுறை உள்ளது.
இது ஒரு வீணாகி படி, ஆனால் அது இருக்கும். இப்போது அது நல்லது.
நாங்கள் குறைந்தது தான் முழுமையான இருப்பது மற்றும் 0 வழி நடக்கிறது.
மிகவும் கடினமான மற்றும் மிகவும் நேரடியான இல்லை,
ஆனால் அது சிக்மா செயல்பாடு நாம் ஒரே வாய்ப்பு உள்ளது என்று மாறும்
நாம் மேடையில் இங்கே செய்தார்.
மேடையில் நாம் தான், எனக்கு அடுத்த இருந்தன எத்தனை பேர் எண்ணி
ஆனால் அதற்கு பதிலாக நாம் எண் 3 + 2 + 1 எண்ணி விரும்பினால்
கீழே 0 நாம் ஒரு செயல்பாடு இதேபோல் பந்தயம் முடியும்
நான் அதற்கு பதிலாக சுழல்நிலை என விவரிக்க வேண்டும் என்று.
இங்கே ஒரு விரைவு நல்லறிவு சரிபார்த்து நான் தவறு செய்யவில்லை என்பதை உறுதி செய்வோம்.
>> நான் தவறு செய்யவில்லை என்று இந்த திட்டத்தில் குறைந்தது ஒரு விஷயம் தெரியுமா.
நான் நுழைய ஹிட் போது நான் என்னை திட்டுகிறாய் எந்த விதமான பெற போகிறேன்?
நான் திட்டுவதற்கு வேண்டும் என்ன போகிறேன்?
சரி, நான் முன்மாதிரி மறந்துவிட்டேன், நான் வரி 15 சிக்மா என்று ஒரு செயல்பாடு பயன்படுத்தி நான் மிகவும்
ஆனால் அது வரி 22 வரை அறிவித்தார், நான் சிறந்த முன்னெச்சரிக்கையாக இங்கு போக
மற்றும் ஒரு முன்மாதிரி என்று, நான் எண்ணாக சிக்மா (int எண்) சொல்கிறேன், அவ்வளவு தான்.
அதை கீழே செயல்படுத்தப்படும்.
>> அல்லது நான் இந்த தீர்க்க முடியும் மற்றொரு வழி,
நான், எந்த கெட்ட அல்ல, அங்கு செயல்பாடு நகர்த்த முடியும்
ஆனால் குறைந்த பட்சம் உங்கள் திட்டங்கள், வெளிப்படையாக, நீண்ட பெற தொடங்கும் போது
நான் எப்போதும் மேலே முக்கிய கொண்ட சில மதிப்பு இருக்கிறது என்று நான் நினைக்கிறேன்
நீங்கள் வாசகர் கோப்பை திறக்க மற்றும் பின்னர் உடனடியாக பார்க்க முடியும்
நிரல் மூலம் தேட இல்லாமல் என்ன
அந்த முக்கிய செயல்பாடு தேடும்.
அது இங்கே என் முனைய சாளரத்தில் கீழே போகலாம்,, சிக்மா சிக்மா செய்ய உருவாக்கும் முயற்சி
மற்றும் நான் இங்கு ஸ்க்ரீவ்டு.
விழாவில் GetInt உள்ளார்ந்த அறிவிப்பு நான் என்ன வேறு செய்ய மறந்துவிட்டேன் என்று?
[செவிக்கு புலப்படாமல்-மாணவர்]
நல்ல, மிகவும் வெளிப்படையாக ஒரு பொதுவான தவறு, அதனால், தான் இங்கே இந்த போட அனுமதிக்க
cs50.h, மற்றும் இப்போது என் முனைய சாளரத்தில் திரும்பி செல்லலாம்.
>> நான் திரையில் தெளிவாக, நான் சிக்மா செய்ய மீண்டும் இயக்கவும் முடியும்.
இது தொகுக்கப்பட்ட தெரிகிறது. எனக்கு இப்போது சிக்மா ஓடிப்போகட்டும்.
, நான் எண்ணிக்கை 3 தட்டச்சு, நான் 6 கிடைத்தது, அதனால் ஒரு கடுமையான சோதனை
ஆனால் குறைந்தது, இது முதல் பார்வையில் வேலை வேண்டும் தெரிகிறது, ஆனால் இப்போது நாம் அது தவிர கிழித்தெறிய
மற்றும் நாம் உண்மையில், மீண்டும், மறுநிகழ்வு யோசனை அதிகப்படுத்தும்
ஒரு மிக எளிய சூழலில், அதனால் ஒரு சில வாரங்களில் 'நேரத்தில்
நாம் அணிகளை விட ஆர்வலராக தரவு கட்டமைப்புகள் ஆய்வு தொடங்கும் போது
நாம் எந்த ஒரு கருவி மற்றொரு கருவி உள்ளது
நாம் பார்க்கலாம் என அந்த தரவு கட்டமைப்புகள் கையாள.
இந்த பங்கேற்பு அணுகுமுறை, சுழற்சி அடிப்படையிலான அணுகுமுறை ஆகும்.
>> இப்போது இதை பதிலாக என்னை விட.
அதற்கு பதிலாக சொல்ல என்னை அனுமதியுங்கள் என்று பல கூட்டுத்தொகை
உண்மையில் அதே விஷயத்தை 0 கீழே உள்ளது
எண்ணை + சிக்மா (எண் - 1).
வேறு வார்த்தைகளில் கூறுவதானால், ஒரு மேடையில் போல் நான், எனக்கு அடுத்த மக்கள் ஒவ்வொரு punted
அவர்கள் இதையொட்டி, நாம் இறுதியாக வில்லி வெளியே அடிப்பாகமுடைய வரை punting வைத்து
யார் 0 போன்ற ஒரு விதமாகவோ பதில் திரும்ப வேண்டியதாயிற்று.
இங்கே இப்போது நாம் இதேபோல் சிக்மா செய்ய punting
அதே செயல்பாடு முதலில் என்று, ஆனால் முக்கிய பார்வையை இங்கே
நாம் அடையாளங்களையே சிக்மா அழைப்பு இல்லை என்று.
நாம் n கடந்து செல்லும்.
நாம் தெளிவாக பல கடந்து - 1,
எனவே சற்று சிறிய பிரச்சனை, சற்றே சிறிய பிரச்சினை.
>> துரதிருஷ்டவசமாக, இந்த இன்னும் முற்றிலும் ஒரு தீர்வு அல்ல, நாம் சரி செய்ய முன்
நீங்கள் சில வெளிப்படையான என என்ன குதித்து
என்னை போய் செய்ய மீண்டும் இயக்கவும் நாம்.
அது சரி, தொகுக்கலாம் தெரிகிறது.
எனக்கு 6 சிக்மா மீண்டும் இயக்கவும் நாம்.
அச்சச்சோ, என்னை 6 சிக்மா மீண்டும் இயக்கவும் நாம்.
நாம் அதே தற்செயலாக கடந்த முறை என்றாலும், இந்த பார்த்திருக்கிறேன்.
நான் ஏன் இந்த ரகசிய பிரிவு தவற்றை கிடைத்ததா? Yeah.
[செவிக்கு புலப்படாமல்-மாணவர்]
மேலும் குறிப்பாக எந்த அடிப்படை வழக்கு, மற்றும், என்ன ஒருவேளை நடந்தது?
இந்த என்ன நடத்தையை ஒரு நோய் அறிகுறி?
கொஞ்சம் உரக்க சொல்ல.
[செவிக்கு புலப்படாமல்-மாணவர்]
அதை திறம்பட ஒரு முடிவிலா சுழற்சியில், மற்றும் எல்லையற்ற கண்ணிக்கு பிரச்சினை
அவர்கள் இந்த வழக்கில் மறுநிகழ்வு உள்ளடக்கியது போது, ஒரு செயல்பாடு, தன்னை அழைப்பு
என்ன ஒரு செயல்பாடு என்று ஒவ்வொரு முறையும் நடக்கும்?
சரி, நாம் ஒரு கணினியில் நினைவக தீட்டப்பட்டது எப்படி திரும்ப நினைக்கிறேன்.
நாம், கீழே என்று ஸ்டேக் என்று நினைவகம் இந்த துண்டின் இல்லை என்று கூறினார்
மற்றும் நீ இன்னும் சிறிது நினைவகம் ஒரு செயல்பாடு என்று ஒவ்வொரு முறையும் வைத்து
அந்த விழாவில் உள்ளூர் மாறிகள் அல்லது அளவுருக்கள் கொண்ட இந்த பெயரளவிலான ஸ்டேக்கில்,
சிக்மா சிக்மா அழைப்பு விடுக்கின்றது நீங்கள் சிக்மா சிக்மா அழைப்பு
சிக்மா அழைப்பு இந்த கதை முடிவில் என்ன?
>> சரி, அது இறுதியில் நீட்டிப்புகளையும் மொத்த தொகை
நீங்கள் உங்கள் கணினியில் கிடைக்கும் என்று நினைவகம்.
நீங்கள் உள்ளே இருக்க வேண்டும் என்று பிரிவில், கைப்பற்றப்பட்ட
இந்த அடுக்கு தவறு செய்து, அடிப்படை, டம்ப்
மற்றும் டம்ப் என்ன அடிப்படை என்றால் நான் இப்போது கோர் என்று ஒரு கோப்பு உள்ளது என்று
இது பூஜ்ஜியங்களும் ஒன்றுகளும் கொண்ட ஒரு கோப்பு
என்று உண்மையில் எதிர்காலத்தில் நோயறிதலுக்கு பயனுள்ளதாக இருக்கும்.
உங்கள் பிழை எங்கே அது உங்களுக்கு தெளிவாக இல்லை என்றால்
நீங்கள் உண்மையில், அதனால் பேச, தடயவியல் ஆய்வு ஒரு பிட் செய்ய முடியும்
இந்த அடிப்படை அடைக்கப்பட்டிருந்த கோப்புடன், இது, மீண்டும், ஒரு பூஜ்ஜியங்களும் ஒன்றுகளும் ஒரு மொத்தமாக உள்ளது
அந்த அடிப்படையில் நினைவகத்தில் உங்கள் திட்டத்தை அரசு பிரதிநிதித்துவப்படுத்துகிறது
தற்போது இந்த வழியில் செயலிழந்தது.
>> இங்கே தீர்வை நாம் மட்டும் கண்மூடித்தனமாக, சிக்மா திரும்ப முடியாது என்று
எண்ணை + சற்றே சிறிய பிரச்சினை சிக்மா.
நாம், இங்கு அடிப்படை வழக்கில் சில வகையான வேண்டும்
மற்றும் அடிப்படை வழக்கில் ஒருவேளை என்ன வேண்டும்?
[செவிக்கு புலப்படாமல்-மாணவர்]
சரி, இவ்வளவு காலமாக பல சாதகமான என்று நாம் உண்மையில், இந்த திரும்ப வேண்டும்
அல்லது வேறு வழி வைத்து, எண் இருந்தால், என்ன, <= 0
நீ, நான் மேலே போய் 0 தருகிறேன் என்ன, தெரியுமா
வில்லி என்று மிகவும் போன்ற, மற்றும் வேறு, நான் போக போகிறேன்
இந்த திருப்பி, அது அந்த மிகவும் குறுகிய இல்லை
நாம் முதல் சுழற்சி ஒரு பயன்படுத்தி தட்டிவிட்டு என்று பங்கேற்பு பதிப்பு விட,
ஆனால் அது நளினம் இந்த வகையான இல்லை என்று அறிவிப்பு.
அதற்கு பதிலாக சில பல திரும்பிய மற்றும் அனைத்து இந்த கணித செயல்படுத்தலில்
மற்றும் உள்ளூர் மாறிகள் பொருட்கள் சேர்த்து
நீங்கள் பதிலாக சொல்கிறீர்கள் "சரி, இந்த ஒரு சூப்பர் எளிதாக பிரச்சனை என்றால்,
எண் <0 போல, என்னை உடனடியாக 0 திரும்பி வரட்டும். "
>> நாம், துணை எதிர்மறை எண்கள் தொந்தரவு போவதில்லை
அதனால் நான் கடுமையாக குறியீடு 0 மதிப்பு செல்கிறேன்.
ஆனால் மற்றபடி, கூட்டலாம் இந்த யோசனையை செயல்படுத்த
இந்த எண்கள் அனைத்தும் ஒன்றாக நீங்கள் திறம்பட ஒரு சிறிய கடி எடுத்து கொள்ளலாம்
பிரச்சனை வெளியே, மிகவும் போன்ற நாம், மேடையில் இங்கே இல்லை
பின்னர் பந்தயம் அடுத்த நபர் பிரச்சினை மீதமுள்ள,
ஆனால் இந்த வழக்கில் அடுத்த நபர் உங்களை உள்ளது.
அது ஒரு அடையாளங்களையே என்ற விழா.
அதை, ஒரு சிறிய மற்றும் சிறிய மற்றும் சிறிய பிரச்சனை ஒவ்வொரு முறை கடக்கும்
நாம் இங்கே குறியீடு இல்லை மிகவும் முறைப்படுத்தப்பட்டது பொருட்கள் கூட
இந்த தொலைபேசி புத்தகம் வாரம் 0 நடக்கிறது என்று சரியாக தான்.
இந்த சீன் கடந்த வாரங்களில் நடக்கிறது சரியாக என்ன
மற்றும் எண்கள் தேடி எங்கள் ஆர்ப்பாட்டங்கள் மூலம்.
அது ஒரு பிரச்சினை எடுத்து மீண்டும் மீண்டும் பிளவு.
>> வேறுவிதமாக கூறினால், மொழிபெயர்ப்பது இப்போது ஒரு வழி இருக்கிறது
இந்த உண்மையான உலக கட்டமைப்பாகும், இந்த உயர் நிலை உருவாக்கப்பட்டது
பிரித்து வெற்றி மீண்டும் மீண்டும் ஏதாவது செய்ய
குறியீடு, இந்த நாங்கள் காலப்போக்கில் மீண்டும் பார்க்கலாம் ஒன்று.
நீங்கள் மறுநிகழ்வு புதிய என்றால் இப்போது, ஒரு ஒதுக்கி, நீங்கள் குறைந்தது இப்போது புரிந்து
ஏன் இந்த வேடிக்கையாக.
நான், google.com க்கு போக போகிறேன்
நான் மறுநிகழ்வு சில குறிப்புகள் மற்றும் தந்திரங்களை தேட போகிறேன், உள்ளிடவும்.
அவர்கள் இப்போது சிரிக்கிறாய் என்று நீங்கள் அடுத்த நபர் சொல்ல.
நீங்கள் மறுநிகழ்வு சொன்னீர்களா?
நீங்கள் ஏன் அதாவது ஹா, அங்கு நாம்.
சரி, இப்போது எல்லோர் ஓய்வு தான்.
ஒரு சிறிய ஈஸ்டர் முட்டை Google இல் எங்கோ இருக்கிறது உட்பொதிக்கப்பட்ட.
ஒரு ஒதுக்கி, நாம் நிச்சயமாக வலைத்தளத்தில் வைத்து இணைப்புகள் ஒருவராக
இன்று பல்வேறு வரிசையாக்க படிமுறைகள் மட்டும் இந்த கட்டம் ஆகும்
நாம் கடந்த வாரம் பார்த்தேன், ஆனால் இந்த காட்சி பற்றி நன்றாக அவற்றில் சில
நீங்கள் நெறிமுறைகள் தொடர்பான பல்வேறு விஷயங்கள் சுற்றி உங்கள் மனதில் மடிக்க முயற்சி என
நீங்கள் மிகவும் எளிதாக இப்போது உள்ளீடுகளின் பல்வேறு வகையான தொடங்க முடியும் என்று.
உள்ளீடுகள் அனைத்து உள்ளீடுகளை சீரற்ற மற்றும் முன்னும் பின்னுமாக, உள்ளீடுகள் பெரும்பாலும் வரிசைப்படுத்தப்பட்ட, எதிர்மறையாக.
நீங்கள் மீண்டும், முயற்சி, உங்கள் மனதில் இந்த விஷயங்களை வேறுபடுத்தி
உணர்ந்து அந்த விரிவுரை பக்கத்தில் நிச்சயமாக வலைத்தளத்தில் இந்த URL
அந்த சில வழியாக காரணம் உதவும்.
>> இன்று நாம் இறுதியில், மீண்டும் ஒரு இருந்து இந்த பிரச்சனையை தீர்க்க வேண்டும்
இது, இந்த இடமாற்று செயல்பாடு தான் வேலை செய்யவில்லை என்று
மேலும், இந்த செயல்பாடு இடமாற்று உடன் அடிப்படை பிரச்சனை என்ன
இங்கே மற்றும் இங்கே ஒரு மதிப்பு பரிமாறி, மீண்டும், அந்த இலக்கை அது
இந்த நடக்கும் என்று?
இந்த உண்மையில் வேலை செய்யவில்லை. ஏன்?
Yeah.
[செவிக்கு புலப்படாமல்-மாணவர்]
இந்த bugginess இன்னும் சரியாக, விளக்கம்
நீங்கள் சி செயல்பாடுகளை அழைப்பு காரணமாக எளிதாக இருந்தது
அந்த பணிகள், ஒரு மற்றும் ப இங்கே போல, வாதங்கள் எடுத்து
நீங்கள் அந்த செயல்பாடு வழங்கும் நீங்கள் என்ன மதிப்பு பிரதிகளை கடந்து செல்லும்.
நீங்கள், உண்மையான மதிப்புகள் தங்களை வழங்கும்
எனவே, buggyc சூழலில் இந்த பார்த்தேன்
இந்த மாதிரி ஒரு சிறிய ஒன்று பார்த்து அதில் buggy3.c,.
>> நாம் x மற்றும் y முறையே, 1 மற்றும் 2 துவக்கப்படும் என்று நினைவு.
நாம் அவர்கள் என்ன அச்சு.
நான் நான் x, y மற்றும் இடமாற்று அழைத்து அவர்களை மாற்ற என்று கூறினார்.
ஆனால் பிரச்சனை, இடமாற்றத்திற்கு வேலை இருந்தது
ஆனால் ஒரே இடமாற்று நோக்கம் தன்னை செயல்பட.
நாம் வரி 40 அந்த பண்டமாற்று மதிப்புகள் வெற்றி விரைவில்
தூர எறிந்து இருந்தது, அதனால் ஒன்றும்
அசல் விழாவில் முக்கிய உண்மையில், அனைத்து மாற்றப்பட்டது
இந்த நம் நினைவகம் அடிப்படையில் போல் என்ன என்று பின் என்று நீங்கள்
குழுவின் இந்த இடது புறம் பிரதிபலிக்கிறது-என்றால்
மற்றும் நான் பார்க்க அனைவருக்கும் என் சிறந்த செய்வேன் இந்த என்றால் குழுவின் இந்த இடப்புறம்
குறிக்கிறது, உங்கள் RAM சொல்ல, மற்றும் ஸ்டாக், இந்த வழி வரை வளரும் போகிறது
நாங்கள் முக்கிய போல ஒரு விழா அழைப்பு, மற்றும் முக்கிய 2 அக மாறிகள், x மற்றும் y உள்ளது
அது இங்கே x என அந்த விவரிக்க விடுங்கள், மற்றும் நாம் இங்கே y இந்த விவரிக்க,
மற்றும் மதிப்பு 1 மற்றும் 2 போட்டு விட்டு, இந்த இங்கே முக்கிய அதனால்
மற்றும் முக்கிய இடமாற்று செயல்பாடு இயங்கு அழைத்தால்,
, ஸ்டேக்கில் இடமாற்று செயல்பாடு நினைவக அதன் சொந்த பட்டையின் ஊடே கொடுக்கிறது
ஸ்டாக் அதன் சொந்த சட்ட, அதனால் பேச.
இது இந்த ints 32 பிட்கள் ஒதுக்கீடு.
இது அவர்களுக்கு ஒரு மற்றும் ப அழைக்க நடக்கும், ஆனால் அந்த முற்றிலும் ஒருதலைப்பட்ச தான்.
அது என்ன வேண்டுமானாலும் அழைத்து, ஆனால் போது முக்கிய என்ன நடக்கும்
அழைப்புகளை இடமாற்று இது, இந்த 1 எடுக்கும் அங்கு ஒரு நகல் வைக்கிறது, அங்கு ஒரு நகல் வைக்கிறது உள்ளது.
>> இடமாற்று 1 மற்ற உள்ளூர் மாறி இருக்கிறது, எனினும், என்ன என்று? >> Tmp.
Tmp, எனவே, என்னை நானே இங்கே மற்றொரு 32 பிட்கள் வழங்கட்டுமா
நான் இந்த விழாவில் என்ன செய்தாய்?
நான் எண்ணாக tmp ஒரு, ஒரு 1 கொண்டுள்ளது பெறும் என்று, அதனால் நாம் கடைசி இந்த உதாரணம் விளையாடிய போது நான் செய்தேன்.
பின்னர் ப பெறுகிறது, எனவே ப 2, எனவே இப்போது இந்த 2 ஆகிறது,
இப்போது, ப திறக்க போகிறது, அதனால் திறக்க 1
எனவே இப்போது ப இந்த ஆகிறது.
அது மிகவும் நல்லது. அது வேலை.
ஆனால் பின்னர் விரைவில் செயல்பாடு திரும்பக்கிடைக்கிறது
இடமாற்று நினைவு திறம்பட அது மீண்டும் பயன்படுத்த முடியும் என்று மறைந்துவிடும்
எதிர்காலத்தில் வேறு செயல்பாடு மூலம், மற்றும் முக்கிய வெளிப்படையாக முற்றிலும் மாறாமல் உள்ளது.
நாம், அடிப்படையில் இந்த பிரச்சனையை தீர்க்கும் ஒரு வழி வேண்டும்
இன்று நாம் இறுதியாக அதனால் இதை ஒரு வழி வேண்டும்
நாம் ஒரு சுட்டிக்காட்டி என்று ஒன்று அறிமுகப்படுத்த முடியும்.
நாம் இந்த பிரச்சனையை தீர்க்க முடியும் என்று மாறும்
x மற்றும் y பிரதிகளை கடந்து செல்லும் மூலம்
ஆனால் அதற்கு பதிலாக என்ன கடந்து செல்லும் மூலம், நீங்கள் இடமாற்று செயல்பாடு, நினைக்கிறீர்கள்?
சரி, முகவரி பற்றி என்ன?
நாம் உண்மையில், மிகவும் விரிவாக முகவரிகளை பற்றி பேசவே இல்லை
ஆனால் இந்த blackboard என் கணினியின் நினைவகம் குறிக்கிறது என்றால்
நாம் நிச்சயமாக என் RAM இல் பைட்டுகள் எண்ணிக்கையில் தொடங்க முடியும்
இந்த பைட் # 1 என்று, இந்த பைட் # 3, # 2 பைட் ஆகும்
பைட் # 4, பைட் # ... 2 பில்லியன் நான் ரேம் 2 ஜிகாபைட் இருந்தால்,
எனவே நாம் நிச்சயமாக சில தன்னிச்சையான எண் திட்டம் கொண்டு வர முடியும்
என் கணினியின் நினைவகம் உள்ள அனைத்து தனி பைட்டுகள் கிடைக்கும்.
>> நான் இடமாற்று என்ன என்றால், அதற்கு பதிலாக அழைப்பு
x மற்றும் y பிரதிகளை காட்டிலும் பாஸ்
நான் ஏன் பதிலாக, இங்கே x முகவரி உள்ள அனுப்ப வேண்டாம்
இங்கே y முகவரி, அடிப்படையில் அஞ்சல் முகவரி
அவர் தகவல் இருந்தால் x மற்றும் y காரணமாக பின், இடமாற்றம்
x மற்றும் y நினைவாக முகவரி,
நாம் அவரை கொஞ்சம் பயிற்சி என்றால், இடமாற்றம்
அவர் திறன், அதனால் பேச, அந்த முகவரிக்கு ஓட்ட முடியும்
x, மற்றும் அங்கு பல மாற்ற, பின்னர், y முகவரி ஓட்டு
உண்மையில் அந்த மதிப்புகள் தன்னை பிரதிகளை பெற்று கூட போது, அங்கு ஏராளமான மாற்ற,
நாங்கள் முக்கிய நினைவகத்தில் இருப்பதால் இந்த பேசினார் கூட
இந்த நிலையில் இருப்பது இடமாற்று நினைவு சக்திவாய்ந்த மற்றும் சி ஆபத்தான பகுதியாக
எந்த செயல்பாடு, எங்கும் கணினியில் நினைவக தொடக்கூடாது என்று
இந்த நீங்கள் சி கணினி நிரல்கள் மிக ஆடம்பரமான விஷயங்களை செய்ய முடியும் என்று சக்திவாய்ந்த உள்ளது
நீங்கள் மிகவும் எளிதாக வரை திருகு ஏனெனில் இந்த ஆபத்தானது.
உண்மையில், திட்டங்கள் மிகவும் பொதுவான வழிகளில் இந்த நாட்களில் ஒரு நாள் பயன்படுத்தி வேண்டும்
ஒரு ப்ரோக்ராமர் உணர முடியவில்லை என்று உள்ளது
அவர் ஒரு தரவு அனுமதிக்கிறது என்று
நோக்கம் இல்லை என்று நினைவகத்தில் இடம் எழுதப்பட்ட வேண்டும்.
>> உதாரணமாக, அவர் அளவு 10 அணிவரிசை அறிவிக்கிறது
ஆனால் பின்னர் தற்செயலாக, நினைவகம் என்று வரிசையாக சென்று 11 பைட்டுகள் வைக்க முயற்சி
நீங்கள் இனி செல்லாது என்று நினைவக பகுதிகள் தொட்டு தொடங்கும்.
ஒரு சூழ்நிலை இந்த, நீங்கள் சில தெரியும் என்று
மென்பொருள் பெரும்பாலும், தொடர் எண்கள் அல்லது பதிவு விசைகளை கேட்கும்
ஃபோட்டோஷாப் மற்றும் வேர்ட் மற்றும் இதை போன்ற திட்டங்கள்.
, நீங்கள் ஒரு சிறிய நிரலை ஆன்லைன் அங்கு, நீங்கள் சில தெரியும், பிளவுகள் இருக்கின்றன
மற்றும் voila, ஒரு வரிசை எண் எந்த கோரிக்கை.
என்று எப்படி வேலை செய்கிறது?
பல சந்தர்ப்பங்களில் இந்த விஷயங்களை எளிமையாக கணினிகளில் கண்டுபிடிப்பதில்
கணினியின் உண்மையான பூஜ்ஜியங்களும் ஒன்றுகளும் உரை பகுதிகளை
வரிசை எண் கேட்டு அமைந்துள்ள அந்த விழாவில், எங்கே
இயங்குவதாக போது, நீங்கள் அந்த இடத்தை மேலெழுதும், அல்லது
முக்கிய சேமிக்கப்படும் அமைந்துள்ள நீங்கள் கண்டுபிடிக்க முடியாது
ஏதோ பயன்படுத்தி ஒரு பிழை என்று, நீங்கள் மென்பொருள் என்று வழி வெடிக்க முடியும்.
இந்த, இரு தினங்களில் இந்த எங்கள் நோக்கம் என்று அல்ல
ஆனால் இது மிகவும் உண்மையான உலக கிளைகளை கொண்டுள்ளது.
ஒரு, மென்பொருள் திருட்டு ஈடுபடுத்த நடக்கும் என்று
ஆனால் முழு இயந்திரங்கள் சமரசம் கூட இல்லை.
>> உண்மையில், அந்த இணையதளங்களில் இந்த நாட்களில் பயன்படுத்தி
மற்றும் சமரசம் மற்றும் தரவு கசிந்த மற்றும் கடவுச்சொற்களை திருடப்பட்டிருக்கிறது
இந்த மிக பெரும்பாலும் ஒரு நினைவக மோசமான நிர்வாகம் தொடர்புடையதாக,
அல்லது, தரவுத்தளங்களை வழக்கில், தோல்வி எதிர்பார்க்க
வரும் வாரங்களில் என்று மிகவும் அதிக adversarial உள்ளீடு,,
ஆனால் இப்போது நீங்கள் என்ன செய்ய முடியும் என்று சேதம் மாதிரி ஒரு பதுக்கல் முன்னோட்டமாக
மிகவும் விஷயங்கள் பேட்டை கீழ் வேலை எப்படி புரிந்து மூலம்.
இந்த உடைந்தது ஏன் புரிந்து பற்றி செல்லலாம்
ஒரு கருவி என்று இன்னும் பயனுள்ளதாக இருக்கும்
நமது திட்டங்கள் இன்னும் சிக்கலான கிடைக்கும்.
நீங்கள் உங்கள் திட்டத்தில் ஒரு பிழை என்று இதுவரை போது
எப்படி அதை பிழைத்திருத்தம் பற்றி போயிருந்தாய்?
என்ன உங்கள் நுட்பங்களை உங்கள் TF மூலம் கற்று என்பதை, இதுவரை இருந்திருக்கும்
அல்லது சுய கற்று?
[மாணவர்] Printf.
நீங்கள் பார்க்க விரும்பினால் Printf, அதனால் printf ஒருவேளை அந்த உங்கள் நண்பர் வருகிறது
உங்கள் திட்டத்தின் உள்ளே என்ன நடக்கிறது
நீங்கள் printf இங்கே, printf இங்கே, printf இங்கே வைத்து.
அதை இயக்க, மற்றும் நீங்கள் திரையில் பொருள் ஒரு மொத்தமாக கிடைக்கும்
நீங்கள் உண்மையில் உங்கள் திட்டத்தில் தவறு என்ன ஊகிக்க பயன்படுத்த முடியும்.
>> Printf, மிக சக்தி வாய்ந்த ஒன்று இருக்கிறது
ஆனால் அது ஒரு மிக கையேடு செயல்முறை.
நீங்கள், ஒரு printf இங்கே, இங்கே ஒரு printf போட வேண்டும்
நீங்கள் ஒரு வட்டத்திற்கு உள்ளே வைத்து நீங்கள் 100 வரிகளை வந்துவிடும்
நீங்கள் மூலம் பிரி வேண்டும் என்று வெளியீடு.
இது, பிழைத்திருத்தம் திட்டங்கள் மிகவும் பயனர் நட்பு அல்லது செயல் அமைப்பு அல்ல
ஆனால் அதிர்ஷ்டவசமாக மாற்று உள்ளது.
GDB என உதாரணமாக ஒரு திட்டம்,,, குனு பிழைத்திருத்தி, அங்கு
நீங்கள் அதை பயன்படுத்த எப்படி ஒரு சிறிய இரகசிய உள்ளது.
இது, வெளிப்படையாக ஒரு சிறிய சிக்கல் இருந்தது, ஆனால்
இந்த இந்த வாரம் வைத்து இருந்தால் அந்த விஷயங்கள் ஒரு மற்றும் அடுத்த
GDB போன்ற ஒன்றை புரிந்து கொள்ள கூடுதல் மணி
இது, நீண்ட நாட்களாக நீங்கள் மணி ஒருவேளை கணக்கான சேமிக்கும்
அதனால் உடன், என்னை நீங்கள் இதை எவ்வாறு ஒரு டீஸர் கொடுக்கலாம்.
>> நான் என் முனைய சாளரத்தில் இருக்கிறேன்.
என்னை போய் இந்த திட்டம், buggy3 தொகுக்க வேண்டும்.
அதை தேதி வரை ஏற்கனவே.
நாம் ஒரு போதும் திரும்பி பார்த்து, உண்மையில், அது உடைந்து விட்டது போல எனக்கு இது ஓடிப்போகட்டும்.
ஆனால் ஏன் இந்த? ஒருவேளை நான் இடமாற்று செயல்பாடு வரை ஸ்க்ரீவ்டு.
ஒருவேளை அது ஒரு மற்றும் ப தான். நான் மிகவும் சரியாக அவர்களை சுற்றி நகரும்.
என்னை போய் இதை செய்கிறேன்.
மாறாக தான், என்னை பதிலாக இந்த திட்டம் GDB இயக்க அனுமதிக்க buggy3 ரன்
மற்றும் நான், buggy3 இயக்க அதை சொல்ல போகிறேன்
நான் ஒரு கட்டளை வரி வாதம், டுய், உள்ளிட்ட போகிறேன்
நாம் ஞாபகப்படுத்த ஸ்பெக் எதிர்காலத்தில் பிரச்சினைகள் இந்த வைக்கிறேன்.
இப்போது இந்த கருப்பு மற்றும் வெள்ளை இடைமுகம், மீண்டும், அந்த வெளிவர ஆரம்பித்தது
இந்த உள்ளது, ஏனெனில் முதலில் ஒரு சிறிய பெரும் உள்ளது
இங்கே கீழே உத்தரவாதத்தை தகவல், ஆனால் குறைந்தது பழக்கமான ஒன்று உள்ளது.
சாளரத்தின் மேற்பகுதியில் உள்ள என் உண்மையான குறியீடு உள்ளது
மற்றும் நான் இங்கே மேலே என்றால், எனக்கு என் கோப்பு மிகவும் மேலே உருட்டும் நாம்
உண்மையில், இந்த சாளரத்தை கீழே buggy3.c, மற்றும் அறிவிப்பு இல்லை
நான் இந்த GDB வரியில் உள்ளது.
>> இந்த என் வழக்கமான ஜான் ஹார்வர்ட் வரியில் அதே அல்ல.
இந்த என்னை GDB கட்டுப்படுத்த அனுமதிக்க நடக்கிறது என்று ஒரு வரியில் உள்ளது.
GDB ஒரு பிழை உள்ளது.
ஒரு பிழை நீ வழியாக நடக்க முடியும் என்று ஒரு திட்டம் உள்ளது
வரி மூலம் வரி மூலம் உங்கள் நிரல் வரி நிறைவேற்றுவது,
நீங்கள் நிரல் வேண்டும் எதையும் செய்து சேர்த்து,
கூட, இன்னும் முக்கியமாக, செயல்பாடுகளை அழைப்பு, அல்லது looking
பல்வேறு மாறி மதிப்பு உள்ள.
தான் போய் இதை செய்கிறேன்.
நான், மேலே சென்று GDB ஒரு வரியில் ரன் தட்டச்சு போகிறேன்
நான் தட்டச்சு ரன் நான் திரையில் விட்டு கீழே பார்க்க,
மற்றும் நான் நுழைய வெற்றி, மற்றும் அந்த என்ன செய்தாய்?
அது உண்மையில் என் திட்டத்தை நடத்தியது, ஆனால் நான் உண்மையில் மிக இங்கே சென்று பார்க்க முடியவில்லை
நான் உண்மையில் பிழை சொல்லவில்லை, ஏனெனில்
நேரம் ஒரு குறிப்பிட்ட நேரத்தில் இடைநிறுத்தப்பட்டு.
ஒரு ரன் தட்டச்சு நிரலை இயக்கும்.
நான் உண்மையில் எனக்கு ஒன்றும் தெரியவில்லை. நான் அதை கையாள முடியாது.
>> பதிலாக என்னை இந்த செய்வோம்.
இந்த GDB வரியில் எனக்கு பதிலாக நுழைய, முறித்து தட்டச்சு செய்யலாம்.
என்று நான் தட்டச்சு பொருள் என்ன இல்லை.
முறித்து முக்கிய தட்டச்சு பதிலாக நாம்.
வேறுவிதமாக கூறினால், நான் ஒரு இடைவேளைநேரத்தை என்று ஒன்று, அமைக்க வேண்டும்
அதை உடைக்க அல்லது இடைநிறுத்தம் ஏனெனில் பொருத்தமாக பெயரிடப்பட்டது
அந்த குறிப்பிட்ட இடத்தில் உங்கள் திட்டத்தை செயல்படுத்தும்.
முக்கிய என் செயல்பாடு பெயர்.
GDB கெட்டிக்காரி என்று பாருங்கள்.
இது முக்கிய வரிசை 18 மணிக்கு சுமார் தொடங்க நடக்கும் என்று வந்தார்
buggy3.c பற்றி, பின்னர் மேல் இடது இங்கே கவனிக்க
ப + வரி 18 பக்கத்தில் தான்.
என்று நான் வரி 18 அமைக்கப்படாத என்று எனக்கு நினைவு.
இந்த நேரத்தில் நான் ரன் தட்டச்சு போது, நான் என் நிரலை இயக்க போகிறேன்
மேலே வரை, அந்த இடைவேளைநேரத்தை பலி
எனவே நிரல் வரி 18 மணிக்கு எனக்கு இடைநிறுத்தம் சாப்பிடுவேன்.
இங்கே நாம் போய் ரன்.
எதுவும் நடக்கவில்லை தெரிகிறது, ஆனால் கீழே அறிவிப்பு விட்டு
தொடக்க நிகழ்ச்சியில், buggy3, buggy3.c வரி 18 பிரதான உள்ள இடைவேளைநேரத்தை 1.
நான் இப்போது என்ன செய்ய முடியும்?
>> கவனிக்க நான், அச்சு போன்ற விஷயங்களை தட்டச்சு செய்ய
இல்லை printf, அச்சு x, இப்போது விசித்திரமாக இருக்கிறது.
நாம் பார்க்கலாம் என $ 1, ஒரு ஆர்வத்தை உள்ளது
நீங்கள் ஏதாவது அச்சிட ஒவ்வொரு முறையும் நீங்கள் ஒரு புதிய $ மதிப்பு கிடைக்கும்.
என்று, நீ வழக்கில் முந்தைய மதிப்புகள் திரும்பி பார்க்கவும் முடியாது, அதனால் தான்
ஆனால் இப்போது என்ன அச்சு என்னிடம் உள்ளது என்று கதை இந்த கட்டத்தில் x மதிப்பு
வெளிப்படையாக 134514032 உள்ளது.
என்ன? என்று கூட எங்கிருந்து வந்தது?
[செவிக்கு புலப்படாமல்-மாணவர்]
உண்மையில், இந்த ஒரு குப்பை மதிப்பு அழைக்கிறேன் என்ன, நாம், இன்னும் இது பற்றி பேசவில்லை நான்
ஆனால் நீங்கள் மாறிகள் துவக்க என்று காரணம்
நிச்சயமாக அவர்கள் அவற்றை வேண்டும் என்று சில மதிப்பு என்று.
ஆனால் ப நீங்கள் மாறிகள் அறிவிக்க முடியும் என்று நினைவு
நான் என் சிக்மா எடுத்துக்காட்டாக ஒரு கணம் முன்பு செய்தது போல
உண்மையில் அவர்கள் ஒரு மதிப்பு கொடுக்காமல்.
நான் சிக்மா உள்ள இங்கு என்ன நினைவு.
நான் n அறிவித்தார், ஆனால் நான் என்ன மதிப்பு கொடுக்கலாம்?
யாரும், நான் தெரியும் என்பதால் அடுத்த சில வரிகளில்
GetInt n, உள்ளே ஒரு மதிப்பு வைத்து பிரச்சினையை கவனித்து கொள்கிறேன்.
>> ஆனால் வரி 11 கதை இந்த புள்ளியில்
மற்றும் வரி 12 மற்றும் வரி 13 மற்றும் வரி 14
அந்த பல வரிகளை முழுவதும் n மதிப்பு என்ன?
சி நீ தெரியாது.
பொதுவாக சில குப்பை மதிப்பு, சில முற்றிலும் சீரற்ற எண்
சில முந்தைய செயல்பாட்டை இருந்து அடிப்படையில் மேல் விட்டு அந்த
உங்கள் நிரலை இயக்கும் இதனால், இயக்க
விழாவில் செயல்பாடு, செயல்பாடு, செயல்பாடு கிடைக்குமா என்று நினைவு.
இந்த சட்டங்கள், பின்னர் அந்த செயல்பாடுகளை மீண்டும் நினைவு மீது, மற்றும்
மற்றும் போல் நான் அவர்களுடைய நினைவாற்றல் இறுதியில் பயன்படுத்தும் உள்ளது அழிப்பி கொண்டு கருத்து.
சரி, அது தான் இந்த திட்டத்தில் இந்த மாறி x நடக்கிறது
134514032 போன்ற சில குப்பை மதிப்பு கொண்டிருந்தது தெரிகிறது
சில முந்தைய செயல்பாட்டை இருந்து, இல்லை நான் எழுதியது என்று.
இது, இயக்க அமைப்பு சிறப்பாக வரும் என்று ஒன்று இருக்க முடியும்
பேட்டை அடியில் சில செயல்பாடு.
>> சரி, சரி, ஆனால் அடுத்த வரியில் முன்னெடுக்க இப்போது நாம்.
நான் என் GDB வரியில் "அடுத்த" தட்டச்சு மற்றும் நான், உள்ளிடவும் வெற்றி
கவனிக்க வேண்டும் என்று, வரி 19 நகர்வுகள் கீழே தனிப்படுத்தி
ஆனால் தருக்க உட்குறிப்பு அந்த வரியை 18 ஆகும்
இப்போது முடிந்ததும் நான் மீண்டும் தட்டச்சு நீங்கள், இயக்கும் "அச்சு x"
நான் இப்போது 1 பார்க்க வேண்டும், உண்மையில், நான்.
மீண்டும், $ பொருள் GDB நினைவுகூறுகீறேன் ஒரு வழி
அச்சிட்டு வரலாற்றில் நீங்கள் செய்த என்ன.
, இப்போது என்னை போக மற்றும் y அவுட் அச்சிட விட, உண்மையில், y மற்றும் சில வேடிக்கையான மதிப்பு
ஆனால் பெரிய விஷயமல்ல வரி 19 இல் நாம் அதை ஒதுக்க இருப்பதால்
மதிப்பு 2, என்னை மீண்டும் "அடுத்த" தட்டச்சு செய்யலாம்.
இப்போது நாம் printf வரியில் இருக்கும்.
என்னை அச்சு x செய்வோம்.
என்னை அச்சு y செய்வோம். வெளிப்படையாக, நான் இந்த அச்சிடுதல் ஒரு கொஞ்சம் களைப்பாக இருக்கிறது.
எனக்கு பதிலாக "காட்சி x" மற்றும் "காட்சி y," டைப் செய்யலாம்
இப்போது ஒவ்வொரு முறையும் நான் எதிர்காலத்தில் ஒரு கட்டளையை தட்டச்சு
நான் என்ன நினைவு என்ன x மற்றும் y, x மற்றும் y, x மற்றும் y என்ன.
>> நான் கூட, ஒரு ஒதுக்கி, வகையாக "தகவல் உள்ளூர்."
தகவல் ஒரு சிறப்பு கட்டளை.
உள்ளூர் அது என்னை உள்ளூர் மாறிகள் காட்டுகிறது என்று பொருள்.
நான் மறந்து அல்லது இந்த பைத்தியக்காரன், சிக்கலான செயல்பாடு என்பது தான் வழக்கு
நான் அல்லது வேறு யாராவது தகவல் உள்ளூர் சொல்கிறேன் எழுதினார்
இந்த உள்ளூர் செயல்பாடு உள்ளே அனைத்து உள்ளூர் மாறிகள் என்ன
நீங்கள் சுற்றி குத்தியிருக்கும் விரும்பினால் பற்றி கவலைப்பட என்று.
இப்போது, printf என்னை மேலே மற்றும் வகை செல்லலாம், இயக்க உள்ளது "அடுத்த."
இந்த சூழலில் தான் நாம் உண்மையில் அதை பார்த்து
இங்கே கீழே இயக்கவும், ஆனால் அது இங்கே ஒரு சிறிய mangled போகிறது கவனிக்க.
ஆனால், அங்கு திரையில் overriding நோட்டீஸின்
அதை இங்கே ஒரு சரியான திட்டம் இல்லை, ஆனால் நான் எப்போதும் சுற்றி குத்தியிருக்கும் ஏனெனில் அது பரவாயில்லை
நான் விரும்பினால் அச்சு பயன்படுத்தி.
>> என்னை அடுத்த மீண்டும் தட்டச்சு விட, இப்போது இங்கே சுவாரஸ்யமான பகுதி.
கதை இந்த கட்டத்தில், y 2, மற்றும் x 1
இங்கே கருத்து, மீண்டும், என
நான் கட்டளையை பயன்படுத்தி இந்த தானாகவே இப்போது காண்பிக்கும் என்று காரணம்
காட்சி x மற்றும் காட்சி y, நான் அடுத்த தட்டச்சு இவ்வளவு நேரம்
கோட்பாடு x மற்றும் y உள்ள பண்டமாற்று வேண்டும்.
இப்போது, நாம் ஏற்கனவே வழக்கு இருக்க போவதில்லை என்று எனக்கு தெரியும்,
ஆனால் நாம் அந்த உண்மை ஏன் கண்டுபிடிக்க ஆழ்ந்த டைவ் எப்படி ஒரு நொடியில் பார்க்கலாம்.
துரதிருஷ்டவசமாக அடுத்த, மற்றும், y இன்னும் 2 மற்றும் x இன்னும் 1, மற்றும் நான் எவ்வளவு உறுதிப்படுத்த முடியும்.
அச்சு x, அச்சு y.
உண்மையில், மாற்றம் இல்லை உண்மையில் நடந்தது, இந்த மேல் ஆரம்பிப்போம்.
தெளிவாக இடமாற்று உடைந்துவிட்டது.
அது பதிலாக மீண்டும் "ரன்" தட்டச்சு செய்யலாம்.
எனக்கு சரி என்று நான், நான் ஆரம்பத்தில் இருந்து அதை மீண்டும் துவக்க வேண்டும், உள்ளிடவும்.
>> இப்போது நான் மீண்டும் வரி 18 இருக்கிறேன்.
இப்போது x மற்றும் y மீண்டும் குப்பை மதிப்புகள் கவனிக்க.
, அடுத்த அடுத்த, அடுத்த, அடுத்த.
நான் போர் அடிக்கிறது என்றால் நான் தான் அடுத்த n தட்டச்சு செய்யலாம்.
நீங்கள் எழுத்துக்கள் குறைந்த சாத்தியம் வரிசையை அதை சுருக்கியது முடியும்.
இடமாற்று இப்போது உடைந்துவிட்டது.
அதற்கு பதிலாக அடுத்த தட்டச்சு அதனால், இன் முழுக்கு விட,
நான் இந்த விழாவில் உள்ளே நுழைவதை நான் என்று இப்போது நான் படி தட்டச்சு போகிறேன்
நான் அதை வழியாக நடக்க முடியும் என்று, நான் படி அடித்துவிட்டு பிறகு நுழைய வேண்டும்.
கவனிக்க வரி 36 என் திட்டத்தில் சிறப்பித்த தாவல்கள் கீழே குறைந்த என்று.
இப்போது உள்ளூர் மாறிகள் என்ன?
தகவல் உள்ளூர்.
நாம் அந்த வரியை போகவில்லையா ஏனென்றால் நான் இதுவரை எதுவும்,
எனவே மேலே சென்று சொல்கிறேன் "அடுத்த."
இப்போது நாம் tmp, அச்சு tmp தெரிகிறது.
குப்பை மதிப்பு, சரியான? நான் அப்படி நினைக்கவில்லை.
எப்படி ஒரு, அச்சு ப, 1 மற்றும் 2 அச்சிட?
ஒரு நொடியில், விரைவில் நான் அடுத்த மீண்டும் தட்டச்சு
tmp, வட்டம், 1 ஒரு மதிப்பை நடக்கப்போகிறது
tmp ஒரு மதிப்பு ஒதுக்கப்படுகின்றன போகிறது என்பதால்.
>> இப்போது ஒரு, அச்சு ப அச்சிட செய்வோம்,
ஆனால் இப்போது tmp அச்சிட, அது உண்மையில் 1 தான்.
என்னை அடுத்த செய்வோம். என்னை அடுத்த செய்வோம்.
நான் இடமாற்று செயல்பாடு முடிச்சுட்டேன்.
நான் வரி 40 இல் அது உள்ளே இன்னும் இருக்கிறேன், என்னை ஒரு அச்சிட விட,
அச்சு ப, மற்றும் நான் tmp என்ன கவலை இல்லை.
அது ஒரு மற்றும் ப மாற்றம் வரும் போது இடமாற்று சரியான போல தெரிகிறது.
ஆனால் நான் இப்போது அடுத்த தட்டச்சு செய்தால், நான், வரி 25 மீண்டும் குதித்து
மற்றும் நிச்சயமாக, x மற்றும் அச்சு y நான் வகை என்றால்
அவர்கள் இன்னும் மாறாமல் இருக்கும், நாம் சிக்கல் சரி இல்லை.
ஆனால் நோயறிதலுக்கு இப்போது ஒருவேளை இந்த GDB திட்டத்தின்
நாம் குறைந்தபட்சம் புரிந்து கொள்ள ஒரு படி அருகில் வந்திருக்கிறேன்
என்ன இங்கே ஒரு printf செலுத்துவதன் மூலம் குப்பை நமது குறியீடு இல்லாமல் தவறு நடக்கிறது,
printf இங்கே, printf இங்கே மீண்டும் மீண்டும் இயங்கும்
தவறு என்ன நடக்கிறது கண்டுபிடிக்க முயற்சி.
>> நான் விட்டு ஒட்டுமொத்தமாக போய் இந்த வெளியே விட்டு போகிறேன்.
அது என்ன நடக்கிறது, "எப்படியும் வெளியேறு?" ஆம்.
இப்போது நான் என் வழக்கமான வரியில் திரும்பி இருக்கிறேன், மற்றும் நான் GDB பயன்படுத்தி செய்து வருகிறேன்.
ஒரு ஒதுக்கி, நீங்கள் இந்த டுய் கொடி பயன்படுத்த தேவையில்லை.
அதை தவிர்த்து விட்டால் உண்மையில், நீங்கள் அடிப்படையில் திரையின் கீழ் பாதி கிடைக்கும்.
நான் ரன் பின்னர் முறித்து முக்கிய தட்டச்சு மற்றும் இருந்தால்
நான் இன்னும் என் நிரலை இயக்க, ஆனால் என்ன செய்வேன் மேலும் உரையால் தான் முடியும்
ஒரு நேரத்தில் என்னை தற்போதைய வரி ஒரு காட்டு.
-டுய், உரை பயனர் இடைமுகம்,
நீங்கள் ஒரு முறை, அநேகமாக ஒரு பிட் கருத்துருவில் எளிதாக இருக்கும் நிரலை இன்னும் காட்டுகிறது.
ஆனால் உண்மையில், நான், அடுத்த அடுத்த, அடுத்த என்ன செய்ய முடியும்
நான் ஒரு நேரத்தில் ஒரு வரியை பார்க்க போகிறேன், நான் உண்மையில் என்ன நடக்கிறது பார்க்க விரும்பினால்
நான் பட்டியல் தட்டச்சு மற்றும் அண்டை வரிகளை ஒரு மொத்தமாக பார்க்க முடியும்.
>> நாம் சிக்கல் 3 அமைக்கிறது நீங்கள் பார்க்கலாம் என்று கேட்டேன் என்று ஒரு வீடியோ உள்ளது
இதில் நேட், GDB சிக்கல்களை சில மூடுகிறது
இந்த, நேர்மையாக, அந்த பொருட்களை ஒன்றாக எங்கே நீங்கள் சில சாரமற்றதல்லாத சதவீதம்
GDB தொடமாட்டேன், மற்றும் ஒரு கெட்ட விஷயம் இருக்க வேண்டும்
உண்மையில் இந்த கல்வியாண்டிற்கு பிறகு அதிக நேரம் செலவழித்து இறுதியில் ஏனெனில்
பிழைகள் கீழே துரத்துவதை பின்னர் நீங்கள் அந்த அரை மணி நேரம் / மணி வைக்க வேண்டும்
இந்த வாரம் அடுத்த கற்றல் GDB வசதியாக பெற.
Printf உங்கள் நண்பர் இருந்தார்.
GDB இப்போது உங்கள் நண்பர் இருக்க வேண்டும்.
>> GDB எந்த கேள்விகள்?
இங்கு மிகவும் சக்திவாய்ந்த மற்றும் பயனுள்ள கட்டளைகளை சில விரைவான பட்டியல்.
Yeah. >> நீங்கள் ஒரு சரம் அச்சிட முடியுமா?
நீங்கள் ஒரு சரம் அச்சிட முடியுமா? முற்றிலும்.
அது முழு இருக்க வேண்டும் இல்லை.
ஒரு மாறி கள் அச்சு கள் தான் வகை ஒரு சரம் இருந்தால்.
அது சரம் மாறி என்ன நீங்கள் காட்டும்.
[செவிக்கு புலப்படாமல்-மாணவர்]
அதை நீங்கள் முகவரி மற்றும் சரம் தன்னை கொடுக்கும்.
நீங்கள் இருவரும் காண்பிக்கும்.
மற்றும் ஒரு கடைசி விஷயம், தான் இந்த மிக எனக்கு நல்ல என்பதால்.
Backtrace மற்றும் சட்ட, என்னை இந்த கடைசி நேரம் வரை டைவ் நாம்
GDB அதே சரியான திட்டம்.
என்னை போய் உரை பயனர் இடைமுகம் பதிப்பு ஓடிப்போகட்டும்,
முக்கிய உடைத்து.
என்னை போய் மீண்டும் இயக்க வேண்டும். இங்கே நான்.
இப்போது எனக்கு, அடுத்த அடுத்த, அடுத்த, அடுத்த, அடுத்த செல்லலாம், படி, உள்ளிடவும்.
>> இப்போது நான் வேண்டுமென்றே இடமாற்று இப்போது நான் நினைக்கிறேன், ஆனால் நான் அப்படி இல்லை "அடடா, x மதிப்பு என்ன?"
நான் இனி x செய்ய முடியாது.
அவர்கள் நோக்கம் இல்லை, ஏனெனில் நான் y செய்ய முடியாது.
அவர்கள் பின்னணியில் தான், ஆனால் எந்த பிரச்சனையும் இல்லை.
நான் backtrace தட்டச்சு செய்யலாம்.
என்று என்னை நேரத்தில் இந்த புள்ளி வரை இயக்க வேண்டும் என்று செயல்பட்டு அனைத்து காட்டுகிறது.
கவனிக்க பிரதான முக்கிய கீழே ஒரு, கோடுகள் வரை
இங்கே எங்கள் படத்திற்கு கீழே இருப்பது.
இடமாற்று இடமாற்று இங்கே நினைவகத்தில் அது மேலே இருப்பது வரை இது வரிகளை மேலே என்று உண்மையில்,
மற்றும் நான் தற்காலிகமாக முக்கிய திரும்ப பெற விரும்பினால் நான் "ஃப்ரேம்." சொல்ல முடியாது
என்ன எண்? முக்கிய சட்ட # 1 ஆகும்.
நான் போய் சொல்ல போகிறேன் "ஃப்ரேம் 1."
>> இப்போது நான் முக்கிய நான் திரும்ப, நான் x அச்சிட முடியாது, நான், y அச்சிட முடியாது
ஆனால் நான் ஒரு அல்லது ப அச்சிட முடியாது.
நான் சொன்னால் ஆனால் நான், "சரி, ஒரு நிமிடம். எங்கே இடமாற்று இருந்தது?" முடியும்
என்னை போய் சொல்லட்டும் "ஃப்ரேம் 0."
இப்போது நான், நான் இருக்க விரும்பவில்லை அங்கு திரும்பி இருக்கிறேன், மற்றும் ஒரு ஒதுக்கி போன்ற
நீங்கள் உண்மையிலேயே சலித்து தட்டச்சு அடுத்த, அடுத்த, அடுத்த, அடுத்த பெறுகிறீர்கள் என்றால் மற்ற கட்டளைகள், மிக இல்லை
நீங்கள் பொதுவாக ", அடுத்த 10" போன்ற விஷயங்களை சொல்ல முடியும் என்பதை அடுத்த 10 வரிசைகள் வழியாக செல்லும்.
நீங்கள் உண்மையில் அது வழியாக நுழைவதை உடன் நொந்துப்போகிற போது "தொடர்ந்து" எழுத முடியும்.
இது மற்றொரு இடைவேளைநேரத்தை எம் வரை தொடர்ந்து, இடையூறின்றி உங்கள் நிரலை
ஒரு வட்டத்திற்கு அல்லது உங்கள் திட்டத்தில் கீழே குறையும்.
>> இந்த வழக்கில் நாம் இறுதியில் தொடர்ந்து, மற்றும் நிரல் பொதுவாக வெளியேறிவிட்டது.
இந்த ஒரு ஆடம்பரமான முறையில், தாழ்ந்த செயலாகும்.
உங்கள் திட்டம் பொதுவாக வெளியேறிவிட்டது.
வீடியோ மற்றும் வருவதற்கு அமர்வுகள் பிழைத்திருத்தம் என்று மேலும்.
என்று நிறைய இருந்தது.
நாம் இங்கே நம் 5 நிமிட இடைவேளை எடுத்து, மற்றும் நாம் structs மற்றும் கோப்புகள் தருகிறேன்.
>> நீங்கள் ஏற்கனவே இந்த வாரம் pset கொண்டு dived இருந்தால்
நீங்கள், நாங்கள் விநியோகம் குறியீடு பயன்படுத்த தெரியவரும்
நாம் ஒரு தொடக்க புள்ளியாக, சில புதிய உத்திகள் உங்களுக்கு வழங்கும் மூல குறியீடு.
குறிப்பாக, நாம், கட்டமைப்புக்கான, struct என்று இந்த புதிய சொல் அறிமுகம்
அதனால் நாம் வகையான தனிப்பயனாக்கப்பட்ட மாறிகள் உருவாக்க முடியும்.
நாங்கள், கோப்பு நான் / ஓ, கோப்பு உள்ளீடு மற்றும் வெளியீடு கருத்தை அறிமுகப்படுத்தப்பட்டது
இந்த நாங்கள் மாநில சேமிக்க முடியும் என்று
உங்கள் போராட்டம் குழுவின் வட்டில் ஒரு கோப்பு
ஆசிரியர் கூட்டாளிகள் மற்றும் நான் புரிந்து கொள்ள முடியும் என்று
என்ன கைமுறையாக விளையாட இல்லாமல் உங்கள் திட்டத்தின் உள்ளே நடக்கிறது
போராட்டம் விளையாட்டுக்கள் டஜன் கணக்கான.
நாம் இன்னும் automatedly இதை செய்ய முடியும்.
>> ஒரு struct இந்த யோசனை மிகவும் கட்டாயமான சிக்கலை தீர்க்கிறான்.
நாம் சில திட்டத்தை செயல்படுத்த வேண்டும் என்று நினைக்கிறேன்
என்று எப்படியோ, மாணவர்கள் தகவல்களை கண்காணிக்கும்
மற்றும் மாணவர்கள், உதாரணமாக, ஒரு பெயர் ஒரு ஐடி வேண்டும்
மற்றும் ஹார்வர்ட் போன்ற ஒரு இடத்தில் ஒரு வீட்டில், அதனால் இந்த தகவல்களை 3 படுகின்றன
நாங்கள் சுற்றி வைக்க வேண்டும், என்னை போய் இங்கே ஒரு சிறிய நிரல் எழுத ஆரம்பிக்கலாம்,
stdio.h அடங்கும்.
என்னை cs50.h. அடங்கும் செய்வோம்
பின்னர் என் முக்கிய செயல்பாடு தொடங்கும்.
நான், எந்த கட்டளை வரி அளவுருக்களை கொண்டு தொந்தரவு செய்யமாட்டேன்
இங்கு நான் ஒரு மாணவர் வேண்டும், அதனால் நான் சொல்ல போகிறேன்
ஒரு மாணவர் ஒரு பெயர் உண்டு, அதை நான் சொல்ல போகிறேன் "சரம் பெயர்."
நான், ஒரு மாணவர் கூட, அதனால் எண்ணாக ஐடி அடையாள உள்ளது என்று போகிறேன்
மற்றும் ஒரு மாணவர் ஒரு வீடு உள்ளது, அதனால் நான் சொல்ல போகிறேன் "சரம் வீடு."
நான் இந்த மாதிரி இன்னும் தெளிவாக இந்த ஒரு சிறிய கூறலாம்.
சரி, இப்போது நான், "ஒரு மாணவர்." இது ஒரு மாணவர் பிரதிநிதித்துவம் 3 மாறிகள் வேண்டும்
>> இப்போது நான் இந்த மதிப்புகள் விரிவுப்படுத்த வேண்டும், என்னை போல் மேலே சென்று சொல்கிறேன்
"Id = 123."
பெயர் டேவிட் போகிறது.
நாம் வீட்டில், மாதர் போகிறார் என்று சொல்ல
மற்றும் நான் ("% கள், தன்னிச்சையாக printf போன்ற ஏதாவது செய்ய போகிறேன்
யாருடைய அடையாள% d,% s இல் வாழ்கிறார்.
இப்போது, நான், இங்கே உள்ள அடைப்பை மற்ற பின் ஒன்றாக என்ன வேண்டும்?
பெயர், இனம், வீட்டின்; திரும்ப 0.
சரி, வரை நான் எங்காவது இங்கு ஸ்க்ரீவ்டு
நான் ஒரு மாணவர் சேமித்து ஒரு நல்ல திட்டம் இல்லை என்று.
நிச்சயமாக, இந்த அனைத்து அந்த சுவாரஸ்யமான அல்ல. என்ன நான் 2 மாணவர்கள் வேண்டும் என்றால்?
பெரிய விஷயமல்ல என்று. நான் 2 பேர் ஆதரவு முடியும்.
என்னை போய் இந்த தேர்வு இங்கே கீழே போகலாம்,
நான் கிர்க்லாண்ட் யார் ராப் போன்ற யாராவது "id = 456" சொல்ல முடியாது.
>> சரி, காத்திருந்து, ஆனால் நான் இந்த அதையே அழைக்க முடியாது
நான் இந்த நகலெடுக்க வேண்டும் போல் இருக்கிறது,
என்னை இந்த டேவிட் மாறிகள் என்று சொல்கிறேன்,
என்னை ராப் இந்த சில பிரதிகளை வைக்கலாம்.
நாம் இந்த ராப் தான் அழைக்கிறேன் ஆனால் இந்த இப்போது வேலை செய்ய போவதில்லை
நான் காத்திருக்க வேண்டும், ஏனெனில், அது NAME1 மற்றும் house1, id1 என்னை மாற்ற வேண்டும்.
ராப், 2 2 இருக்கும்.
நான் இங்கே, இங்கே, இங்கே, இங்கே, இங்கே, இங்கே இந்த மாற்ற வேண்டும்.
காத்திருக்க, என்ன டாமி பற்றி? மீண்டும் இந்த செய்வோம்.
நீங்கள் இன்னும் இந்த இதை ஒரு நல்ல வழி என்று வெளிப்படையாக இருந்தால், அது, இல்லை
எனவே நகலெடுக்க / கெட்ட ஒட்டவும்.
ஆனால் நாம் ஒரு வாரம் முன்பு இந்த தீர்த்தார்.
>> நாம் அதே தரவு வகை பல நிகழ்வுகளை வைத்திருக்க விரும்பினேன் போது நம் தீர்வு என்ன?
[மாணவர்கள்] ஒரு வரிசை.
ஒரு வரிசை, என்னை இதை சுத்தம் செய்ய முயற்சி செய்வோம்.
என்னை மேலே நானே சில அறை செய்ய, மற்றும் எனக்கு பதிலாக இங்கே இதை விட்டு.
நாம் இந்த மக்கள் அழைக்கிறேன், மற்றும் அதற்கு பதிலாக நான் ", int ஐடிகள்" என்று போகிறேன்
நான் இப்போது நம் 3 ஆதரவு போகிறேன்.
நான், ", சரம் பெயர்கள்" என்று நான் நம் 3 ஆதரவாக இருப்பேன் செல்கிறேன்
பின்னர் நான் ", சரம் வீடுகள்" என்று நான் நம் 3 ஆதரவு போகிறேன் செல்கிறேன்.
இப்போது இங்கே பதிலாக டேவிட் தனது சொந்த உள்ளூர் மாறிகள் பெறுவதில் உள்ள
நாம் அந்த விடுபட முடியும்.
என்று நாம் இந்த சுத்தம் என்று நன்றாக.
நான் டேவிட் [0] மற்றும் பெயர்கள் [0] இருக்கும் என்று சொல்லலாம்
மற்றும் வீடுகள் [0].
மற்றும் நாம் இதேபோல் இந்த சேமிக்க முடியும் ராப்.
இந்த கீழே இங்கே வைக்கிறேன், அதனால் அவர் தன்னிச்சையாக ஐடிகள் [1] இருக்க போகிறது.
அவர் பெயர்கள் இருக்க போகிறது [1],
பின்னர் இறுதியாக, வீடுகள் [1].
>> , இன்னும் கொஞ்சம் சிரமமான, இப்போது நான் இந்த கண்டுபிடிக்க வேண்டும்
அப்படி நாம் "பெயர்கள் [0], அடையாள [0], வீடுகள் [0],
மற்றும் இந்த pluralize நாம்.
ஐடி, ஐடி, ஐடி.
மீண்டும், நான் அதை செய்கிறேன், அதனால் மீண்டும், நான் ஏற்கனவே, மீண்டும் ஒட்டவும் / நகலெடுக்க ஈடுபடுகிறார்கள்
எனவே முரண்பாடுகள் மற்றொரு தீர்வு இங்கு இருக்கிறாய்.
நான் ஒருவேளை, அப்படி ஒரு சுழற்சி அல்லது ஏதாவது கொண்டு மேலும் இந்த சுத்தம் செய்யலாம்
எனவே சுருக்கமாக, இது ஒரு சிறிய நல்லது ஆனால் இன்னமும் உணர்கிறார்
, நான் ஒட்டவும் / நகலெடுக்க ஈடுபடுகிறார்கள், ஆனால், இந்த கூட, நான் கூறுவது
உண்மையில் அடிப்படையில் சரியான தீர்வு அல்ல, ஏனெனில்
சிறிது நாம் முடிவு செய்தால் நீங்கள் என்ன தெரியுமா?
நாம் உண்மையில் டேவிட் மற்றும் ராப் மின்னஞ்சல் முகவரிகளை சேமித்து
இந்த திட்டத்தில் அனைவரும்.
நாங்கள் தொலைபேசி எண்கள் சேமிக்க வேண்டும்.
நாங்கள் அவசரகால தொடர்பு எண்கள் சேமிக்க வேண்டும்.
நாம், நாம் சேமிக்க வேண்டும் என்று தரவு இந்த துண்டுகளை வேண்டும்
எனவே எப்படி என்று செய்து பற்றி போவேன்?
>> நீங்கள் மேலே மற்றொரு அணி அறிவிக்க, மற்றும் நீங்கள் கைமுறையாக சேர்க்க
ஒரு மின்னஞ்சல் முகவரியை [0], மின்னஞ்சல் முகவரியை [1]
டேவிட் மற்றும் ராப் மற்றும் மிகவும் முன்னும் பின்னும்.
ஆனால் இந்த வடிவமைப்பு அடித்தளத்தில் ஒரு அனுமானத்தின் உண்மையில் அங்கு
நான் என்று கௌரவம் கணினியை பயன்படுத்தி என்று
[நான்] பல வரிசைகள் ஒவ்வொரு
அவ்வளவு தான், அதே நபர் பார்க்கவும் நடக்கிறது
எனவே [0] ஐடிகள் உள்ள எண் 123, இல்லை
நான் அந்த பெயர்களை கருதி போகிறேன் [0]
அதே நபரின் பெயர் மற்றும் வீடுகள் [0]
நான் உருவாக்க பல்வேறு அணிகளை அனைத்து அதே நபரின் வீடு மற்றும் முன்னும் பின்னுமாக இருக்கும்.
ஆனால் அடிப்படை தொடர்பு இல்லை என்று அறிவிப்பு
தகவல், ஐடி, பெயர் மற்றும் வீட்டின் அந்த 3 துண்டுகளாக மத்தியில்,
நாம் இந்த திட்டத்தில் மாதிரி முயற்சிக்கும் நிறுவனம் வரிசைகள் அல்ல கூட.
வரிசைகள் இதை இந்த வேலைத்திட்ட வழியாகும்.
நாம் உண்மையில் நம் திட்டத்தில் மாடல் என்ன ஒரு நபர்
டேவிட், இதில் உள்ளே ராப் போன்ற ஒரு நபர் போன்ற
அல்லது பறைசாற்றுகின்றார் ஒரு பெயர் மற்றும் அடையாள ஒரு வீடு.
>> நாம் எப்படியாவது கூட்டடைவு இந்த கருத்தை வெளிப்படுத்த முடியும்
ஒரு நபர் ஒரு அடையாள, ஒரு பெயர் மற்றும் ஒரு வீடு உள்ளது மேற்கொள்கின்ற
உண்மையில் இந்த ஹேக் நாட முடியாது ஆகையால் நாம் தான்
அந்த அடைப்புக்குறி ஏதாவது நம்பிக்கை
இந்த முற்றிலும் வேறான வரிசைகள் ஒவ்வொரு அதே மனித நிறுவனம் குறிக்கிறது?
நாம் உண்மையில் இதை செய்ய முடியும்.
எனக்கு இப்போது மேலே முக்கிய போய், என் சொந்த தரவு வகை உருவாக்க விட்டு
முதல் முறையாக உண்மையில் இது.
நாங்கள், போராட்டம், இந்த தொழில் நுட்பம் பயன்படுத்தப்படுகிறது
ஆனால் இங்கே நான், மேலே சென்று ஒரு தரவு வகையை உருவாக்க போகிறேன்
நீங்கள் என்ன, நான், அதை மாணவர் அல்லது அழைக்க போகிறேன்
நான் ஒரு வகை வரையறை செய்ய typedef பயன்படுத்த போகிறேன்.
நான், இந்த ஒரு அமைப்பு என்று போகிறேன்
பின்னர் இந்த அமைப்பு, வகை மாணவர் இருக்க, நாம் சொல்ல வேண்டும் என்று
அது எனக்கு இப்போது தேதியிட்ட ஒரு சிறிய விஷயம் கூட.
நாம் "எண்ணாக ஐடி." சொல்கிறேன்
நாம் "சரம் பெயர்." சொல்கிறேன்
நாம் "சரம் வீட்டை," நான் கூறுவேன்
எனவே இப்போது குறியீடு இந்த சில வரிகள் இறுதிக்குள்
நான் அங்கு உள்ளது என்று கணகண வென்ற சப்தம் கற்று
சரங்கள் தவிர ints தவிர ஒரு தரவு வகை,, தவிர மிதவைகள் தவிர, இரட்டையர்.
>> நேரம் வரிசையில் 11 இந்த கணம் வரை, மாணவர்கள் என ஒரு புதிய தரவு வகை, இப்போது இல்லை
இப்போது நான், எங்கேயும் நான் ஒரு மாணவர் மாறி அறிவிக்க முடியும்
என்னை மக்கள் இங்கே கீழே பார்ப்போம்.
, இப்போது நான் இந்த விடுபட முடியும், மற்றும் நான் இங்கே டேவிட் மீண்டும் கீழே போகலாம்
மற்றும் டேவிட் நான் உண்மையில் அந்த டேவிட், சொல்ல முடியாது
நாம் உண்மையில், நானே பிறகு மாறி பெயரிட முடியும்
வகை மாணவர் இருக்க போகிறது.
இந்த சற்றே இருக்கும், ஆனால் இந்த எல்லா என்று வேறு அல்ல
ஒரு முழு எண்ணாக அல்லது ஒரு சரம் அல்லது ஒரு மிதவை போன்ற ஏதாவது அறிவித்தார் இருந்து.
அது மிக, இப்போது மாணவர் என்று ஆகிவிட்டால்
நான் இந்த அமைப்பு உள்ளே ஏதாவது செய்ய வேண்டும் என்றால்,
, நான் இப்போது இலக்கணத்தை ஒரு புதிய துண்டு பயன்படுத்த வேண்டும், ஆனால் இது மிகவும் நேரடியான தான்
david.id = 123, மூலதன டி உள்ள david.name = "டேவிட்",
மற்றும் david.house = "மாதர்,"
இப்போது நான் இங்கே இந்த பொருள் விடுபட முடியும்.
நாம் இப்போது ஒரு மிக சிறந்த வழி எங்கள் திட்டம் வடிவமைக்கப்பட்டுள்ளது
என்று இப்போது எங்கள் திட்டம், நிஜ உலகில் கண்ணாடிகள்.
>> ஒரு நபர் அல்லது ஒரு மாணவர் ஒரு நிஜ உலக கருத்து இல்லை.
இங்கே நாம் இப்போது ஒரு நபர் அல்லது இன்னும் குறிப்பாக ஒரு மாணவர் ஒரு சி பதிப்பு உள்ளது.
அந்த நபர் உள்ளே இந்த தொடர்புடைய பண்புகள் உள்ளன
ஐடி, பெயர் மற்றும் வீடு, அதனால் ராப் அடிப்படையில் கீழே இங்கே தான் ஆகிறது,
, மாணவர் திருடு எனவே, இப்போது = 456 rob.id
rob.name = "ராப்."
மாறி ராப் அழைக்கப்படுகிறது என்ற அர்த்தமற்ற வகை.
நாம் அது x அல்லது y அல்லது z என்று.
நாம் தான், அதை சொற்பொருளியல் ரீதியாகவும் தொடர்ந்து இருக்கும் ராப் என்ற
ஆனால் உண்மையில் பெயர், அந்த துறையில் தன்னை உள்ளே இருக்கும்
எனவே இப்போது நான் இந்த வேண்டும்.
இது நான் கடுமையாக டேவிட் குறியாக்கம் செய்த சிறந்த வடிவமைப்பு போல் இல்லை.
நான் கடினமாக ராப் குறியிடப்படும்.
நான் இன்னும் சில நகல் நாட மற்றும் நான் புதிய மாறிகள் வேண்டும் ஒவ்வொரு முறையும் ஒட்டவும் வேண்டும்.
மேலும், நான், வெளிப்படையாக இந்த மாறிகள் ஒவ்வொரு ஒரு பெயர் கொடுக்க வேண்டும்
நான் மிகவும் மாறாக இந்த மாறிகள் விவரிக்க என்று கூட
மேலும் பொதுவாக போன்ற மாணவர்கள்.
>> இப்போது நாம் நன்கு வேலை என்று யோசனைகள் ஒன்றாக்க முடியும்
அதற்கு பதிலாக, நீங்கள் என்னை ஒரு மாறி என மாணவர்கள் கொடுக்க என்ன, தெரியுமா ", என்று
இப்போது நான் இந்த மேலும் துல்லியமாக்க முடியும் ", அது அளவு 3 இருக்க வேண்டும் என்று,
, கைமுறையாக அறிவித்தார் டேவிட் விடுவித்தாக
நான் அதற்கு பதிலாக [0] இங்கே மாணவர்கள் அப்படி சொல்லலாம்.
நான், [0] இங்கே மாணவர்கள் சொல்ல முடியும்
மாணவர்கள் இங்கே, அதனால் அடிக்கடி [0], மற்றும் நான் சுற்றி செல்ல முடியும்
மற்றும் ராப் அந்த சுத்தம்.
நான் கூட இப்போது ஒருவேளை ஒரு வட்டத்திற்கு சேர்த்து சுமார் செல்ல முடியும்
உண்மையில் பயனர் இந்த மதிப்புகள் பெற GetString மற்றும் GetInt பயன்படுத்தி.
இது பொதுவாக மோசமான நடைமுறையில் ஏனெனில் நான் ஒரு நிலையான சேர்த்து சுமார் செல்ல முடியும்
இங்கு 3 போன்ற கடின குறியீடு சில தன்னிச்சையான எண்
அதன் பின்னர் நீங்கள் எந்த இன்னும் 3 விட மாணவர்கள் வைத்து கொள்ள வேண்டும் என்று ஞாபகம்.
இது அநேகமாக என் கோப்பின் மேல் வரையறை # பயன்படுத்த நன்றாக இருக்கும்
மற்றும், எனவே உண்மையில், என்னை போய் இந்த பொதுமைப்படுத்த நாம் அந்த காரணி.
>> எனக்கு இன்றைய மத்தியில் அது ஒரு உதாரணம் திறந்து விட
முன்கூட்டியே உதாரணங்கள், structs1.
இந்த # இங்கு வரையறுக்க பயன்படுத்தும் ஒரு முழுமையான நிரல்
நாம் இயல்பாக 3 மாணவர்கள் போகிறது என்கிறார்.
இங்கே நான், மாணவர்கள் ஒரு வர்க்கம் மதிப்புள்ள பிரகடனம்
மாணவர்கள் ஒரு வகுப்பறையில் எனவே, இப்போது நான் ஒரு வட்டத்திற்கு பயன்படுத்தி வருகிறேன்
வெறும் குறியீடு இன்னும் கொஞ்சம் நேர்த்தியான செய்ய, வர்க்கம் விரிவுப்படுத்த
பயனர் உள்ளீடு, அதனால் 3 இது மாணவர்கள், நான் = 0 இல் இருந்து வரை கூறு.
பின்னர் நான் இந்த பதிப்பில் பயனரை
என்ன மாணவர் அடையாள தான், நான் GetInt அது கிடைக்கும்.
என்ன மாணவர் பெயர், மற்றும் நான் அதை GetString மூலம் கிடைக்கும்.
மாணவர் வீட்டில் என்ன? நான் GetString அது கிடைக்கும்.
பின்னர் இங்கே கீழே நான் மாற்ற முடிவு
நான் இந்த அச்சிடுகிறது நான் உண்மையில் ஒரு சுழற்சி எவ்வாறு பயன்படுத்த வேண்டும் என்பதை,
நான் யார் அச்சிடுதல்?
கருத்து படி நான், மாதர் யாருக்கும் அச்சிடுதல்
அந்த ராப் மற்றும் டாமி மிகவும் மற்றும் முன்னும் பின்னுமாக-உண்மையில் டாமி இன் மாதர் அது தான்.
டாமி மற்றும் டேவிட் இந்த வழக்கில் அச்சிடப்பட்டு, ஆனால் எப்படி இந்த வேலை?
நாம் இந்த விழாவில் காணப்படவில்லை, ஆனால் இந்த என்ன என்று ஒரு யூகம் எடுத்து இல்லை.
சரங்களை ஒப்பிடுகிறது.
>> அது மாறிவிடும் என்பதால் அதை சரங்களை ஒப்பிட்டு எப்படி ஒரு சிறிய அல்லாத கண்டிப்பாக
அதை அதாவது 0 கொடுக்கிறது என்றால் சரங்களை சமமானவர்கள்.
அது ஒரு -1 கொடுக்கிறது என்றால், அந்த ஒரு, மற்ற முன் அகர வரிசைப்படி வரும் பொருள்
இது மற்ற வார்த்தைக்கு என்ன அர்த்தம் என்று +1 கொடுக்கிறது என்றால் மற்றும் அகர வரிசைப்படி வரும்
மற்ற முன், மற்றும் நீங்கள் ஆன்லைன் அல்லது மனிதன் பக்கம் பார்க்க முடியும்
சரியாக எந்த வழி எது பார்க்க, ஆனால் இதை எல்லாம் இப்போது செய்து அதை சொல்லி இருக்கிறாள்
[நான்]. வீட்டில் "மாதர்" சமமாக இருந்தால்
பின்னர் மேலே சென்று மிகவும் அவுட் அச்சிட மற்றும் மாதர் உள்ளது.
ஆனால் இங்கே நாம் பார்த்ததே இல்லை விஷயம், நாம் இந்த வருகிறேன்.
நான் எப்போதும் என் திட்டங்கள் எந்த இதை செய்ய கொண்ட நினைவு இல்லை.
இலவச வெளிப்படையாக, நினைவாற்றல் பற்றி நினைவு பெறலாம்
ஆனால் நான் வெளிப்படையாக இந்த திட்டத்தின் கீழ் இந்த வட்டத்திற்கு என்ன நினைவக பெறலாம்?
நான் ஒரு நபரின் பெயர் பெறலாம் போல் தெரிகிறது
மற்றும் ஒரு நபரின் வீடு, ஆனால் அது ஏன்?
>> அதை நீங்கள் GetString பயன்படுத்தி வருகிறேன் என்று இந்த வாரம் நடக்கிறது
நாம் வகையான உங்கள் திட்டங்கள் ஒவ்வொரு ஒரு பிழை அறிமுகம்.
அதை நீங்கள் ஒரு சரம் திரும்ப முடியும் என்று வடிவமைப்பு தொண்டு நினைவக மூலம் GetString,
போன்ற டேவிட், அல்லது ராப், மற்றும் நீ என்ன வேண்டுமானாலும் செய்யலாம்
நாங்கள் உங்களுக்கு நினைவு முன்பதிவு செய்து உங்கள் திட்டம் என்று வாசகத்தில்.
பிரச்சனை நீ GetString என்று ஒவ்வொரு முறையும் இந்த நேரம்
நாம், GetString ஆசிரியர்கள், இயங்கு கேட்டு
இந்த சரம் எங்களை ரேம் ஒரு பிட் கொடுக்க.
இந்த அடுத்த சரம் எங்களை ரேம் ஒரு பிட் கொடுக்க.
இந்த அடுத்த சரம் இன்னும் கொஞ்சம் ரேம் கொடுக்க.
என்ன, ப்ரோக்ராமர், செய்து இல்லை
, நம்மை நினைவு திரும்ப கொடுக்கும்
எனவே இந்த பல வாரங்கள் திட்டங்கள் அனைத்து நீங்கள் எழுதிய
அவர்கள் பயன்படுத்தி வைத்து கொள்ள ஒரு நினைவக பாய்ச்சல் என்று என்ன இருந்தது
மேலும் நினைவக நீங்கள் GetString அழைப்பு, மற்றும் அது நல்லது ஒவ்வொரு முறையும்.
அது சுவாரசியமாக இல்லை, ஏனெனில் நாங்கள் வேண்டுமென்றே முதல் வாரங்களில் செய்ய
சரம் இருந்து வரும் அமைந்துள்ள பற்றி கவலைப்பட வேண்டும்.
நீங்கள் விரும்பும் அனைத்து வார்த்தை போது பயனர் வகையான அது உள்ளே வர ராப் உள்ளது
>> ஆனால் முன்னேற்றம் நாம் இப்போது இது பற்றி மேலும் அதிநவீன பெற்று தொடங்க வேண்டும்.
நாம் நினைவகத்தை ஒதுக்க எந்த நேரமும் நாம் நல்ல இறுதியில் அதை திரும்ப ஒப்படைக்கிறேன்.
மற்றபடி உங்கள் மேக் அல்லது கணினியில் உண்மையான உலகத்தில் நீங்கள் எப்போதாவது அனுபவம் வேண்டும்
உங்கள் கணினி இறுதியில் ஒரு நிறுத்த சாணை அமைந்துள்ள அறிகுறிகள்
அல்லது முட்டாள் சுழல் கடற்கரை பந்தை ஒரு கணினியின் ஆக்கிரமித்து
முழு கவனம் மற்றும் நீங்கள் எல்லாம் செய்ய முடியாது.
அந்த பிழைகள் எந்த எண் மூலம் விளக்கினார், ஆனால் அந்த வாய்ப்பு பிழைகள் மத்தியில்
விஷயங்களை நினைவு கசிவுகள் அழைக்கப்படுகின்றன அதன்படி மென்பொருள் என்று துண்டு எழுதியது யார் யாரோ
நீங்கள் இலவச நினைவக நினைவில் இல்லை பயன்படுத்தி
அவர், இயக்க அமைப்பு கேட்டு என்று
ஒரு CS50 விஷயம் என்பதால், GetString பயன்படுத்தி, ஆனால் இதே போன்ற செயல்பாடுகளை பயன்படுத்தி
நினைவகத்தை இயக்க அமைப்பு கேட்கும்.
நீங்கள் அல்லது அவர்கள் திருகு மற்றும் என்றால், உண்மையில் அந்த நினைவு திரும்பாது
ஒரு திட்டத்தை தாமதப்படுத்தி தாமதப்படுத்தி கீழே குறைந்துவிடுகிறது என்று இருக்க முடியும் என்று ஒரு அறிகுறி
நீங்கள் இலவச அழைக்க நினைவில் வரை.
>> எப்போது, ஏன் இலவச அழைப்பு என்று நாம், திரும்பி வருவாள்
ஆனால் அது தான் நல்ல நடவடிக்கை இன்னும் மேலே போய் இந்த குறிப்பிட்ட இயங்குவதாக முயற்சி செய்வோம்.
இந்த structs1 என, உள்ளிடவும்.
டேவிட் மாதர், என்னை போய் structs1 ரன் 123 let,
456, ராப் கிர்க்லாண்ட், 789,
டாமி மாதர், மற்றும் நாம் மாதர் உள்ள டேவிட் பார்க்க, டாமி இன் மாதர் இல்.
இந்த திட்டம் வேலை என்று ஒரு சிறிய நல்லறிவு காசோலை.
இப்போது, துரதிருஷ்டவசமாக, இந்த திட்டம் என்று ஒரு சிறிய வெறுப்பாக இருக்கிறது
நான், நான் 9 வெவ்வேறு சரங்களை அனைத்து அந்த வேலையை தட்டச்சு செய்யவில்லை, உள்ளிடவும் வெற்றி
மாதர் இருந்த கூறினார், இன்னும் வெளிப்படையாக நான் அதை தட்டச்சு ஏனெனில் ஏற்கனவே மாதர் இருந்த தெரியும்.
இந்த திட்டம் இன்னும் ஒரு தரவுத்தள போல் இருந்தால் அது குறைந்த பட்சம் நன்றாக இருக்கும்
அது உண்மையில் நான் தட்டச்சு என்ன நினைத்துக்கொண்டு
எனவே நான் மீண்டும் உள்ளீடு இந்த மாணவர் பதிவுகள் வேண்டும் என்றும்.
ஒருவேளை அது ஒரு registrarial கணினி போல.
>> நாம், கோப்பு நான் / ஓ, கோப்பு உள்ளீடு மற்றும் வெளியீடு என அழைக்கப்படும் இந்த தொழில் நுட்பத்தை பயன்படுத்தி இதை செய்ய முடியும்
நீங்கள் கோப்புகளை படிக்க அல்லது கோப்புகளை எழுத வேண்டும் எந்த நேரம் என்று ஒரு மிகவும் பொதுவான வழி
நீங்கள் செயல்பாடுகளை ஒரு குறிப்பிட்ட அமைப்பு இந்த செய்ய முடியும்.
என்னை போய் இந்த உதாரணம் structs2.c திறக்க விட,
இது கிட்டத்தட்ட ஒன்றாக உள்ளது, ஆனால் அது இப்போது என்ன பார்க்க நாம்.
கோப்பு மேலே நான் மாணவர்கள் ஒரு வர்க்கம் என்று.
நான், பயனர் உள்ளீடு வர்க்கம் விரிவுப்படுத்த
எனவே குறியீடு அந்த வரிகளை சரியாக முன் மாதிரி.
மாதர் உள்ள அனைவருக்கும் தன்னிச்சையாக முன் மாதிரி நான் இங்கே கீழே என்றால் நான் அச்சிட,
ஆனால் இந்த ஒரு புதிய அம்சம்.
, குறியீடு இந்த வரிகளை புதிய, மற்றும் அவர்கள் இங்கே ஏதாவது அறிமுகம்
கோப்பு, அனைத்து தொப்பிகள், அது போல் இங்கே உள்ள * உள்ளது.
என்னை போல் இங்கு, இங்கு ஒரு * இந்த செல்லலாம்.
>> இந்த விழாவில் நாம் பார்த்ததே இல்லை, fopen,
ஆனால் இது திறந்த கோப்பு பொருள், எனவே இந்த வழியாக தான் ஆடையெடு விட,
இந்த, நாம் எதிர்காலத்தில் psets உள்ள திரும்பி வருவாள் ஒன்று
ஆனால் இங்கே இந்த வரி அடிப்படையில், தரவுத்தள என்று ஒரு கோப்பு திறக்கிறது
இது குறிப்பாக அது என்ன செய்ய முடியும் என்று ஒரு வழியில் அதை திறக்கும்?
[செவிக்கு புலப்படாமல்-மாணவர்]
சரி, அதனால் "w" அதை இயங்கு சொல்வது பொருள்
நான் அதை எழுத முடியும் வகையில் இந்த கோப்பை திறக்க.
நான் அதை படிக்க விரும்பவில்லை. நான் அதை பார்க்க விரும்பவில்லை.
நான், அதை மாற்ற மற்றும் சாத்தியமுள்ள விஷயங்களை சேர்க்க வேண்டும்
மற்றும் கோப்பு தரவுத்தள என்று போகிறது.
இந்த எதையும் என்று.
இந்த database.txt இருக்க முடியும். இந்த. Db இருக்க முடியும்.
இந்த foo போன்ற ஒரு வார்த்தை இருக்க முடியும், ஆனால் நான் தன்னிச்சையாக கோப்பு தரவுத்தள பெயரை தேர்வு.
இந்த, நாம் காலப்போக்கில் பெரும் விரிவாக திரும்பி வருவேன் என்று ஒரு சிறிய நல்லறிவு காசோலை
கைரேகை, கோப்பு சுட்டிக்காட்டி க்கு, சம NULL இல்லை என்று அனைத்து நன்றாக இருக்காது.
>> நீண்ட கதை குறுகிய, fopen போன்ற செயல்பாடுகளை சில நேரங்களில் தோல்வி.
ஒருவேளை கோப்பு இல்லை. ஒருவேளை நீங்கள் வட்டு இடம் போதவில்லை.
ஒருவேளை நீங்கள், அந்த கோப்புறையை அனுமதி இல்லை
fopen பூஜ்ய ஏதாவது கொடுக்கிறது மிகவும் மோசமான நடந்தது.
Fopen பூஜ்ய தராது மாறாக, அனைத்து நன்றாக உள்ளது
நான் இந்த கோப்பை எழுத தொடங்கலாம்.
இங்கே ஒரு புதிய தந்திரம் தான்.
இந்த, என் மாணவர்கள் ஒவ்வொரு தேடி என்று ஒரு சுழற்சி உள்ளது
இந்த, நாம் முன்னர் என்ன செய்தேன் என்பதை மிகவும் ஒத்த தெரிகிறது
ஆனால் இந்த செயல்பாடு, printf printf கோப்பு fprintf என்று ஒரு சகோதரர்
அது மட்டும் 2 வழிகளில் வேறு கவனிக்க.
ஒரு, இது, அதற்கு பதிலாக ப f தொடங்குகிறது
ஆனால் அதன் முதல் வாதத்தை வெளிப்படையாக என்ன?
[மாணவர்கள்] கோப்பு. >> இது ஒரு கோப்பு.
நாம் இறுதியில் ஒரு கோப்பு சுட்டிக்காட்டி என்ன தவிர கிண்டல் நான் எந்த ரேகை என்று இந்த விஷயம்,,
ஆனால் இப்போது கைரேகை வெறுமனே, நான் திறந்து என்று கோப்பை குறிக்கிறது
எனவே fprintf இங்கே, கோப்பு இந்த பயனர் அடையாள அச்சிட முடியாது திரைக்கு சொல்கிறார்கள்.
கோப்பு பயனர் பெயரை, இல்லை திரையில், அச்சிட
கோப்பு, இல்லை, வெளிப்படையாக, கீழே இங்கே பின் திரையில், மற்றும் வீடு
கோப்பு மூட, பின்னர் கீழே இங்கே நினைவு இலவச.
>> இந்த பதிப்பு 2 மற்றும் பதிப்பு 1 இடையில் மட்டுமே வேறுபாடு
fopen அறிமுகம் மற்றும் * இந்த கோப்பு
மற்றும் fprintf இந்த கருத்து, அதனால் முடிவு என்ன என்பது நாம் பார்ப்போம்.
என் முனைய சாளர செல்லலாம்.
உள்ளிட, என்னை structs2 ஓடிப்போகட்டும்.
அனைத்து நன்றாக தெரிகிறது. அது structs2 மீண்டும் இயக்கவும் நாம்.
123, டேவிட் மாதர், 456, ராப் கிர்க்லாண்ட்,
789, டாமி மாதர், உள்ளிடவும்.
அதே நடந்து போல, ஆனால் நான் இப்போது ls செய்தால்
என் குறியீடு மத்தியில் இங்கே என்ன கோப்பு கவனிக்க, தரவுத்தள,
எனவே அந்த அந்த, தரவுத்தளத்தின் gedit, மற்றும் பார் திறக்க அனுமதி.
இது கோப்பு வடிவங்களில் கவர்ச்சிகரமான இல்லை.
உண்மையில், வரிக்கு வரிக்கு தரவு வரி ஒரு துண்டு இருக்கிறது
ஆனால் எக்செல் அல்லது CSV கோப்புகளை பயன்படுத்த நீங்கள் அந்த, கமா, மதிப்புகள் பிரிக்கப்பட்ட
நான் நிச்சயமாக பதிலாக ஒருவேளை இந்த மாதிரி ஏதாவது செய்ய fprintf பயன்படுத்தப்படும்
நான் உண்மையில் ஒரு எக்சல் கோப்பை சமமான உருவாக்க முடியும் என்று
காற்புள்ளிகளை, தான் புதிய வரிகளை விஷயங்களை பிரிப்பதன் மூலம்.
>> இந்த வழக்கில் நான் பதிலாக காற்புள்ளிகளை பதிலாக புதிய வரிகளை பயன்படுத்தி இருந்தால்
நான் அதற்கு பதிலாக இது போன்ற செய்தால் நான் உண்மையில் எக்செல் இந்த தரவுத்தள கோப்பை திறக்க முடியவில்லை.
சுருக்கமாக, இப்போது நாம் கோப்புகளை எழுத சக்தி இருக்கிறது
நாம் இப்போது வட்டில் அதை சுற்றி வைத்து, தொடர்ச்சியான தரவு தொடங்க முடியாது
நாம் மீண்டும் மீண்டும் சுற்றி தகவல் வைத்திருக்க முடியும் என்று.
இப்போது சற்று தெரிந்திருந்தால் மற்ற விஷயங்களை ஒரு ஜோடி கவனிக்கவில்லை.
இந்த சி கோப்பு மேலே நாம் ஒரு typedef வேண்டும்
நாம் ஒரு சொல் குறிக்கிறது என்று ஒரு தரவு வகையை உருவாக்க வேண்டும், ஏனெனில்
இந்த வகை வார்த்தை அழைக்கப்படுகிறது எனவே, மற்றும் உள்ளே இந்த அமைப்பு
அது இப்போது ஒரு சிறிய ஆர்வலராக இருந்தது.
ஏன் ஒரு வார்த்தை வெளிப்படையாக ஒரு வரிசைக்கு ஆனது?
வெறும் உள்ளுணர்வாக ஒரு வார்த்தை என்ன?
>> அது கதாபாத்திரங்கள் ஒரு வரிசை தான்.
அதை மீண்டும் மீண்டும் மீண்டும் எழுத்துக்கள் ஒரு காட்சி.
அனைத்து தொப்பிகள் உள்ள எழுத்துக்களை நாம் தன்னிச்சையாக சொல்ல வேண்டும் நடக்கும் அதிகபட்ச நீளம்
நாம் போராட்டம் பற்றிய பயன்படுத்தி என்று அகராதியில் எந்த வார்த்தை.
நான் ஏன் ஒரு +1 இருக்கிறது?
வெற்று எழுத்து.
நாம் Bananagrams எடுத்துக்காட்டாக செய்த போது நாம் ஒரு சிறப்பு மதிப்பு தேவை நினைவுகூர
கண்காணிப்பதற்கு வார்த்தையின் முடிவில் பொருட்டு
பிரச்சனை தொகுப்பு விவரக்குறிப்பு சொல்வது வார்த்தைகள் உண்மையில் முடிவுக்கு எங்கு, மற்றும்
இங்கு நாம், ஒரு வார்த்தை, ஒரு பூலியன் மதிப்பை தொடர்புப்படுத்துகிறது
ஒரு கொடி, எனவே, உண்மை அல்லது பொய் பேச.
நாம் உணர ஏனெனில் நீங்கள் ஏற்கனவே இந்த வார்த்தை இல்லை
நாம் உண்மையில் நினைவில் ஒரு வழி தேவையில்லை மட்டுமே போராடும் ஒரு வார்த்தை என்ன
ஆனால் நீங்கள் இல்லாவிட்டாலும், மனித, அதை கண்டு
நீங்கள் கண்டறிய செய்தால் வார்த்தை "" நீங்கள் தட்டச்சு முடியாது, அதனால் நுழைய, நுழைய, நுழைய
மேலும் 3 புள்ளிகள், 3 புள்ளிகள், 3 புள்ளிகள், 3 புள்ளிகள் கிடைக்கும்.
நாம் ஒரு bool மூலம் அந்த வார்த்தை பிளாக்லிஸ்ட் முடியும் வேண்டும்
நீங்கள் ஏற்கனவே கிடைத்துவிட்டது என்றால் ஏன் உண்மை, மற்றும் அதனால் நாம் தான்
இந்த அமைப்பு இது மூடப்பட்டிருக்க.
>> இப்போது, கீழே இங்கே போராட்டம் உள்ள அகராதி என்று இந்த மற்ற struct உள்ளது.
இங்கே இல்லாமல் typedef வார்த்தை என்பதால் இந்த விஷயத்தில்
நாம், ஒரு அகராதியின் யோசனை கூட்டடைவு தேவை
ஒரு அகராதி, வார்த்தைகள் ஒரு மொத்தமாக கொண்டுள்ளது
இந்த வரிசை மூலம் மறைமுகமாக, எப்படி அந்த வார்த்தைகள் பல உள்ளன?
சரி, இந்த மாறி என்று அளவு கோல் என்ன.
ஆனால் நாம் ஒரு அகராதியை வேண்டும்.
நாம் அகராதியை என்று ஒரு தரவு வகையை தேவையில்லை.
நாம் தான் அவர்களை ஒரு தேவை, அது சி மாறிவிடும்
நீங்கள் typedef சொல்லவில்லை என்றால், நீங்கள் struct என்று அந்த, பின்னர் சுருள் ப்ரேஸ் உள்ளே
நீங்கள் பெயரை வைத்து பின், உங்கள் மாறிகள் வைத்து.
இந்த ஒரு மாறி என்று அகராதியில் பிரகடனம்
இந்த மாதிரி.
இதற்கு மாறாக, இந்த வரிகளை வார்த்தை என்று மீண்டும் பயன்படுத்தும் தரவு கட்டமைப்பை உருவாக்கும்
நாம் உருவாக்கிய போல் நீங்கள், பல பிரதிகளை உருவாக்க முடியும்
மாணவர்கள் பல பிரதிகள்.
>> இந்த இறுதியில் நாம் என்ன செய்ய வேண்டும் என்பதை அனுமதிக்கும்?
என்னை எளிய முறை, இது என்று ஒரு எளிய உதாரணம் விட, மீண்டும் செல்லலாம்,
மற்றும் compare1.c, தான் சொல்கிறேன், என்னை திறந்து விடுங்கள்.
கையில் இங்கே சிக்கல் உண்மையில் மீண்டும் தலாம் என்று
வரிசை அடுக்கு மற்றும் இந்த பயிற்சி சக்கரங்கள் ஆஃப் எடுத்து தொடங்க
அது ஒரு சரம் என்று இந்த நேரத்தில் மாறிவிடும் என்பதால்
நாம் உண்மையில் வாரம் 1 இல் ஒரு புனைப்பெயரை வாக்கு என்பது,
ஒரு பொருள் ஒரு சிறு ரகசிய தெரிகிறது என்று ஏதாவது CS50 நூலகம் இருந்து,
கரி *, மற்றும் நாம் முன்னர் இந்த நட்சத்திரம் பார்த்திருக்கிறேன்.
நாம் கோப்புகளை சூழலில் அதை பார்த்தேன்.
>> நாம் இப்போது சில நேரம் இந்த விவரம் மறைத்து வருகிறது ஏன் இப்போது பார்ப்போம்.
இங்கே compare1.c என்று ஒரு கோப்பு உள்ளது
அது வெளிப்படையாக, கள் மற்றும் t, 2 சரங்களை பயனரிடம்
பின்னர், வரி 26 இல் சமத்துவத்திற்கான அந்த சரங்களை ஒப்பிட்டு முயற்சி
அவர்கள் கூறும் சம என்றால், "நீங்கள், அதே விஷயத்தை தட்டச்சு"
அவர்கள் சம இல்லை என்றால் அது "நீங்கள் வேறு விஷயங்களை தட்டச்சு.", என்கிறார்
என்னை போய் இந்த நிரலை இயக்க அனுமதிக்க.
என் மூல அடைவில் செல்லலாம், ஒரு compare1 செய்ய. அது சரி, தொகுக்கப்பட்ட.
என்னை compare1 ஓடிப்போகட்டும்.
நான், பெரிதாக்க உள்ளிட வேண்டும்.
ஏதோ சொல்ல. வணக்கம்.
நான் மீண்டும் ஒன்று சொல்கிறேன். வணக்கம்.
நான் நிச்சயமாக வேறு விஷயங்களை தட்டச்சு செய்யவில்லை.
>> என்னை மீண்டும் இந்த முயற்சி செய்யலாம். பாய்.
நிச்சயமாக வேறு அல்ல, இங்கே என்ன நடக்கிறது என்று?
சரி, உண்மையில் வரி 26 என்ன ஒப்பிடுகையில்?
[செவிக்கு புலப்படாமல்-மாணவர்]
ஆம், அது ஒரு சரம், தரவு வகை, ஒரு வெள்ளை பொய் என்ன என்று கூறினார்.
ஒரு சரம் ஒரு எரிப்பதை *, ஆனால் ஒரு எரிப்பதை * என்ன?
ஒரு எரிப்பதை *, அவர்கள் கூறியது போல், ஒரு சுட்டிக்காட்டி உள்ளது
மற்றும் ஒரு சுட்டிக்காட்டி, இது ஒரு முகவரி
ஒரு தொகையை நினைவகத்தில் இடம், மற்றும் நீங்கள் வணக்கம் போன்ற ஒரு வார்த்தையை தட்டச்சு செய்து நேர்ந்தால்,
சரங்களின் கடந்த விவாதங்களில் இருந்து நினைவுகூர
இந்த வார்த்தை போன்ற ஹலோ உள்ளது.
ஹலோ போன்ற ஒரு வார்த்தை குறிப்பிடப்படுகின்றன முடியும் என்று நினைவில்
இந்த எழுத்துக்கள் அணிவரிசையாகும்
பின்னர் இறுதியில் ஒரு சிறப்பு தன்மை கொண்ட, வெற்று தன்மை என்று
\ குறிக்கிறது என்று.
ஒரு சரம் உண்மையில் என்ன?
இந்த நினைவகம் பல துண்டுகளாக்கி என்று அறிவிப்பு
நீங்கள் முழு சரம் வழியாக இருக்கும் முறை மற்றும் உண்மையில், அது இறுதியில் மட்டுமே அறியப்படுகிறது
சிறப்பு வெற்று தன்மையை தேடும்.
ஆனால் இந்த என் கணினியின் நினைவகம் இருந்து நினைவகம் ஒரு துண்டின் என்றால்,
நாம் தன்னிச்சையாக இந்த சரம், ஆதாயம், என்று
அது என் கணினியின் ரேம் ஆரம்பத்தில் வைக்கப்பட்டது.
இந்த பைட் 0, 1, 2, 3, 4, 5, 6 ...
>> நான் GetString போன்ற ஏதாவது சொல்ல நான் சரம் கள் = GetString செய்யும் போது
உண்மையில் என்ன திரும்பினார்?
இந்த கடந்த பல வாரங்களாக, என்ன உண்மையில் கள் சேமிக்கப்படும்
தன்னிச்சையாக இந்த சரம் அல்ல, ஆனால் இந்த விஷயத்தில் என்ன சேமிக்கப்படும் என உள்ளது
GetString உண்மையில் என்ன காரணம் எண்ணை 0
இது உடல் ஒரு சரம் தராது.
என்று கூட உண்மையில் கருத்து பயன் இல்லை.
அது மீண்டும் ஒரு எண் என்ன.
அந்த எண், நினைவகத்தில் வணக்கம் முகவரி இல்லை
மற்றும் சரம் கள் பிறகு, நாம் மீண்டும் தலாம் இந்த அடுக்கு, சரம் உண்மையில் இல்லை என்றால்.
அது மட்டும் CS50 நூலகத்தில் ஒரு தெளிவுபடுத்தல் தான்.
>> இந்த உண்மையில் எரிப்பதை * என்று ஒன்று இருக்கிறது.
என்ன வணக்கம் போன்ற ஒரு வார்த்தை தான் சார் அர்த்தம்?
சரி, அதை எழுத்துகள் ஒரு தொடர், பாத்திரங்கள் ஒரு தொடர்.
கரி *, ஒரு பாத்திரம் முகவரி பொருள்
அதனால் என்ன, அது ஒரு சரம் திரும்ப அர்த்தம்?
ஒரு சரம் திரும்பி ஒரு நல்ல, எளிய வழி
இது தவிர, நான் 5 அல்லது 6 வெவ்வேறு பைட்டுகள் திரும்பி எப்படி கண்டுபிடிக்க முயற்சி
என்னை பைட் என்ற முகவரிக்கு திருப்பி விட?
முதல் ஒரு.
வேறுவிதமாக கூறினால், என்னை நீங்கள் நினைவு ஒரு பாத்திரம் முகவரி கொடுத்து விடுங்கள்.
என்று, கரி * பிரதிபலிக்கிறது என்ன நினைவகத்தில் ஒரு ஒற்றை தன்மை முகவரி.
என்று மாறி கள் அழைப்பு.
நான் தன்னிச்சையாக அவர் எந்த குறிப்பிட்ட முகவரி, 0 என்று கள் அங்காடியில்,
நான் விஷயங்களை எளிமையாக வைத்து, ஆனால் உண்மையில் இது பொதுவாக ஒரு பெரிய எண்.
>> ஒரு நிமிடம்.
நீங்கள் மட்டும் எனக்கு முதல் எழுத்து முகவரி கொடுத்து என்றால், எப்படி நான் முகவரி என்ன தெரியுமா
இரண்டாவது தன்மை, மூன்றாவது, நான்காவது மற்றும் ஐந்தாவது?
[செவிக்கு புலப்படாமல்-மாணவர்]
சரம் இறுதியில் இந்த எளிய தந்திரம் மூலம் எங்கே நீங்கள் மட்டுமே தெரியும்,
எனவே உங்களை போன்ற printf ஏதாவது பயன்படுத்த போது, என்ன printf மொழியில், அதன் வாதம் ஆகும்
இந்த% கள் ஒதுக்கிட பயன்படுத்தும் நினைவு, பின் நீங்கள் அனுப்ப
ஒரு சரம் சேமித்து என்று மாறி.
என்ன நீங்கள் உண்மையில் செல்லும் என்று சரம் முதல் தன்மை முகவரி.
Printf பின்னர், அந்த முகவரியை பெற்று மீது வளைய அல்லது ஒரு வட்டத்திற்கு ஒரு பயன்படுத்துகிறது
உதாரணமாக, 0, எனவே, என்னை இப்போது இந்த செய்வோம்
printf ("% s \ n" கள்);
நான் அழைக்க போது printf ("% s \ n" கள்); என்ன நான் உடன் printf வழங்கும்
இந்த தன்னிச்சையான வழக்கில் எச் இது கள் முதல் பாத்திரம் முகவரி, இது
>> எப்படி printf திரையில் காண்பிக்க சரியாக என்ன தெரியும்?
நடைமுறைப்படுத்தப்படும் நபர் printf லூப் ஒரு வட்டத்திற்கு அல்லது செயல்படுத்தப்படவில்லை
இந்த பாத்திரம் சிறப்பு வெற்று தன்மையை சமமாக என்று?
இல்லை என்றால், அதை அச்சிட்டு. எப்படி இந்த ஒரு?
இது அச்சிட இல்லை என்றால், அதை அச்சிட்டு அதை அச்சிட்டு, அதை அச்சிட்டு.
ஓ, இந்த ஒரு சிறப்பு உள்ளது. அச்சிடுதல் நிறுத்த மற்றும் பயனர் திரும்ப.
மற்றும் அந்த மொழியில் பேட்டை அடியில் நடந்துகொண்டிருக்கிறது என்று எல்லாம்
என்று, ஒரு வர்க்கம் முதல் நாளில் ஜீரணிக்கமுடியுமா நிறைய
ஆனால் இப்போது அது உண்மையில் புரிந்து எல்லாம் கட்டுமான தொகுதி தான்
என்று, நம் கணினியின் நினைவகம் உள்ளே
இறுதியில் நாம் ஒரு சிறிய உதவியுடன் இந்த தவிர கிண்டலடிக்கிறேன்
ஸ்டான்போர்ட் எங்கள் நண்பர்கள் ஒன்று.
>> ஸ்டான்போர்ட் பேராசிரியர் நிக் Parlante இந்த அற்புதமான வீடியோ காட்சியில் செய்தது
அறிமுகப்படுத்தப்பட்டது என்று வெவ்வேறு மொழிகளில் அனைத்து வகையான இருந்து
இந்த சிறிய Claymation தன்மையை Binky.
நீங்கள் ஒரு சில இரண்டாவது பதுக்கல் முன்னோட்டமாக உள்ள கேட்க பற்றி நீங்கள் குரல்
ஒரு ஸ்டான்போர்ட் பேராசிரியராக என்று, நீ வருகிறோம்
இது சரியான மட்டுமே 5 அல்லது 6 வினாடிகள் இப்போது,
ஆனால் இந்த நாம் இன்று முடிக்க வேண்டும் என்ற குறிப்பு இல்லை
மற்றும் புதன்கிழமை தொடங்குகிறது.
நான் Binky, முன்னோட்ட உடன் சுட்டி வேடிக்கை கொடுக்க.
[♪ இசை ♪] [பேராசிரியர் Parlante] ஏய், Binky.
எழுந்திரு. அதை சுட்டிக்காட்டி வேடிக்கை நேரம்.
[Binky] என்று என்ன? சுட்டிகள் பற்றி அறிய?
ஓ, நல்லவன்!
>> நாம் புதன்கிழமை நீங்கள் பார்ப்போம்.
[CS50.TV]