1 00:00:00,000 --> 00:00:03,395 >> [సంగీతాన్ని] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 డేవిడ్ J. మలన్: ఈ వంటిది ఒక ఫ్రెష్మాన్ సదస్సు నేడు. 4 00:00:13,280 --> 00:00:14,060 అలాగే. 5 00:00:14,060 --> 00:00:15,024 కాబట్టి బయటకు చాలా వర్షపు. 6 00:00:15,024 --> 00:00:17,690 ఈ బుధవారాలలో జరిగే ఉంటుంది, కానీ అన్ని మరింత అవకాశం 7 00:00:17,690 --> 00:00:18,700 ప్రశ్నలు కోసం నేడు. 8 00:00:18,700 --> 00:00:22,210 కాబట్టి నిజంగా ఆఫ్ ప్రారంభిద్దాం కేవలం ఒక క్షణం సినిమా. 9 00:00:22,210 --> 00:00:24,560 కానీ మేము ఎల్లప్పుడూ వంటి ఘనంగా ప్రారంభం చేస్తాము. 10 00:00:24,560 --> 00:00:28,000 >> ఈ CS50, మరియు ఈ వారం 4 ముగింపు. 11 00:00:28,000 --> 00:00:30,820 మీరు ఎప్పుడైనా వీక్షించారు చేసిన చేస్తే TV లేదా ఒక సినిమా ఇందులో 12 00:00:30,820 --> 00:00:34,690 కొన్ని కంప్యూటర్ నిపుణులు ఉన్నాయి మరియు పోలీసు లేదా FBI, లేదా కొన్ని ఏజెన్సీ 13 00:00:34,690 --> 00:00:36,930 కొన్ని పట్టుకోవాలని ప్రయత్నిస్తూ ఉంది విరోధి, బాగా, మీరు చేసిన 14 00:00:36,930 --> 00:00:40,850 బహుశా "విస్తరించేందుకు" వ్యక్తీకరణ విన్న అనగా ఆ టెక్నీషియన్ ఏదో 15 00:00:40,850 --> 00:00:44,750 అద్భుతంగా అనంతమైన అవుటే చేయవచ్చు నేరస్థులు చూడటానికి చాలా 16 00:00:44,750 --> 00:00:48,640 గుర్తింపు లేదా లైసెన్స్ ప్లేట్ సంఖ్య ఒక అద్దం కూడా మెరిసే లో 17 00:00:48,640 --> 00:00:50,390 లేదా ఒకరి కంటి ప్రకాశం. 18 00:00:50,390 --> 00:00:55,196 కాబట్టి నిజంగా, యొక్క పరిశీలించి తెలియజేయండి హాలీవుడ్ నుండి కొన్ని అటువంటి సన్నివేశాలు. 19 00:00:55,196 --> 00:00:55,862 [వీడియో ప్లేబ్యాక్] 20 00:00:55,862 --> 00:00:59,243 -OK, ఇప్పుడు మీరు వద్ద ఒక మంచి లుక్ పొందుటకు వీలు. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> -దాన్ని పట్టుకో. 23 00:01:07,415 --> 00:01:08,267 ఆ వెనుక అమలు. 24 00:01:08,267 --> 00:01:09,121 >> ఒక నిమిషం -Wait. 25 00:01:09,121 --> 00:01:11,300 కుడి వెళ్ళండి. 26 00:01:11,300 --> 00:01:12,209 >> -ఉన్నాయి, ఆ స్తంభింప. 27 00:01:12,209 --> 00:01:12,750 -పూర్తి స్క్రీన్. 28 00:01:12,750 --> 00:01:13,558 -OK, ఆ స్తంభింప. 29 00:01:13,558 --> 00:01:14,820 మీరు ఆ అప్ -Tighten? 30 00:01:14,820 --> 00:01:16,530 ఆ లో -Vector వెనుక చక్రం ద్వారా గై. 31 00:01:16,530 --> 00:01:19,400 ఇక్కడ ఈ స్పాట్ లో -Zoom. 32 00:01:19,400 --> 00:01:22,846 సరైన పరికరాలు -తో, చిత్రం విస్తరించబడి పదును కాలేదు. 33 00:01:22,846 --> 00:01:24,065 ఆ -What వార్తలు? 34 00:01:24,065 --> 00:01:25,600 -ఇది ఒక మెరుగుదల కార్యక్రమం. 35 00:01:25,600 --> 00:01:26,860 ఆ ఏ స్పష్టం మీరు -Can? 36 00:01:26,860 --> 00:01:27,890 -I తెలియదు. 37 00:01:27,890 --> 00:01:29,050 యొక్క ఇది విస్తరించేందుకు లెట్. 38 00:01:29,050 --> 00:01:31,575 >> -Enhance విభాగం A6. 39 00:01:31,575 --> 00:01:33,642 >> -I వివరాలు మెరుగైన, and-- నేను ఉందని నేను అనుకుంటున్నాను 40 00:01:33,642 --> 00:01:35,433 విస్తరించేందుకు తగినంత, నా స్క్రీన్ దానిని విడుదల. 41 00:01:35,433 --> 00:01:37,080 -I ఆమె కంటిలో ప్రతిబింబం విస్తరించింది. 42 00:01:37,080 --> 00:01:38,830 >> -Let ద్వారా ఈ అమలు వీడియో మెరుగుదల. 43 00:01:38,830 --> 00:01:40,100 -ఎడ్గార్, మీరు ఈ మెరుగుపరుస్తాయి? 44 00:01:40,100 --> 00:01:41,875 >> పై -Hang. 45 00:01:41,875 --> 00:01:44,010 >> ఈ తెలివితో పని -I've. 46 00:01:44,010 --> 00:01:44,995 >> -Someone యొక్క ప్రతిబింబం. 47 00:01:44,995 --> 00:01:45,495 -Reflection. 48 00:01:45,495 --> 00:01:47,399 మనిషి యొక్క ముఖం యొక్క ప్రతిబింబం-ఉంది. 49 00:01:47,399 --> 00:01:48,065 -ది ప్రతిబింబం. 50 00:01:48,065 --> 00:01:48,981 ప్రతిబింబం-ఉంది. 51 00:01:48,981 --> 00:01:50,600 అద్దం లో -Zoom. 52 00:01:50,600 --> 00:01:52,712 -మీరు ప్రతిబింబం చూడగలరు. 53 00:01:52,712 --> 00:01:54,350 మీరు ఇక్కడ నుండి చిత్రం మెరుగుపర్చే -Can? 54 00:01:54,350 --> 00:01:55,370 మీరు ఇక్కడే అతనికి విస్తరించేందుకు -Can? 55 00:01:55,370 --> 00:01:56,210 మీరు విస్తరించేందుకు -Can? 56 00:01:56,210 --> 00:01:56,900 మీరు మెరుగుపరుస్తాయి? 57 00:01:56,900 --> 00:01:57,870 >> మేము ఈ విస్తరించేందుకు -Can? 58 00:01:57,870 --> 00:01:58,717 >> మీరు విస్తరించేందుకు -Can? 59 00:01:58,717 --> 00:02:00,050 ఒక క్షణము -Hold, నేను విస్తరించేందుకు చేస్తాము. 60 00:02:00,050 --> 00:02:00,924 తలుపు లో -Zoom. 61 00:02:00,924 --> 00:02:01,700 10 -Times. 62 00:02:01,700 --> 00:02:02,586 -Zoom. 63 00:02:02,586 --> 00:02:03,490 లో -Move. 64 00:02:03,490 --> 00:02:03,990 మరిన్ని. 65 00:02:03,990 --> 00:02:04,690 -Wait, ఆపడానికి. 66 00:02:04,690 --> 00:02:05,190 -Stop. 67 00:02:05,190 --> 00:02:05,970 ఇది -Pause. 68 00:02:05,970 --> 00:02:09,460 మాకు 75 డిగ్రీల -Rotate నిలువు చుట్టూ, దయచేసి. 69 00:02:09,460 --> 00:02:10,962 -Stop. 70 00:02:10,962 --> 00:02:14,040 భాగానికి తిరిగి వెళ్ళు మళ్ళీ తలుపు గురించి. 71 00:02:14,040 --> 00:02:15,860 >> బిట్మ్యాప్ ఒక చిత్రం పెంచే -Got? 72 00:02:15,860 --> 00:02:18,776 >> -Hey, బహుశా మేము ప్రదీప్ ఉపయోగించవచ్చు సేన్ పద్ధతి విండోస్ లోకి చూడటానికి. 73 00:02:18,776 --> 00:02:20,372 -ఈ సాఫ్ట్వేర్ కళ యొక్క రాష్ట్రం. 74 00:02:20,372 --> 00:02:21,845 >> -ది Eigenvalue ఆఫ్. 75 00:02:21,845 --> 00:02:24,300 >> కుడి -తో అల్గోరిథం యొక్క కలయిక 76 00:02:24,300 --> 00:02:26,755 >> -అతను యొక్క తీసుకున్న తొలగింపు తదుపరి స్థాయికి అల్గోరిథంలు 77 00:02:26,755 --> 00:02:28,730 మరియు నేను వాటిని ఉపయోగించవచ్చు ఈ ఛాయాచిత్రం విస్తరించేందుకు. 78 00:02:28,730 --> 00:02:31,286 >> పై -Lock మరియు z అక్షం వచ్చేలా. 79 00:02:31,286 --> 00:02:32,560 >> -Enhance. 80 00:02:32,560 --> 00:02:33,100 >> -Enhance. 81 00:02:33,100 --> 00:02:33,600 >> -Enhance. 82 00:02:33,600 --> 00:02:34,960 -Freeze మరియు మెరుగుపరచడానికి. 83 00:02:34,960 --> 00:02:37,180 >> [END ప్లేబ్యాక్] 84 00:02:37,180 --> 00:02:41,160 >> డేవిడ్ J. మలన్: అన్ని కుడి, కాబట్టి ఆ అన్ని నిజానికి పదాలు. 85 00:02:41,160 --> 00:02:44,450 వారు కేవలం ఒక కలిసి strung చేస్తున్నారు నిజానికి సరైన కాదు మార్గం. 86 00:02:44,450 --> 00:02:48,400 అది వంటి మరియు, నిజానికి, CS50 మరియు కోర్సులు TV మరియు సినిమాలు చాలా నాశనం కావాలనుకుంటాడు 87 00:02:48,400 --> 00:02:48,900 నీ కోసం. 88 00:02:48,900 --> 00:02:52,330 ఆ కంప్యూటర్ నిపుణులు ఎందుకంటే నిబంధనలు ఆఫ్ rattling మరియు అంటున్నారు 89 00:02:52,330 --> 00:02:56,860 వంటి ఫాన్సీ విషయాలు eigenvectors మరియు z అక్షం, 90 00:02:56,860 --> 00:02:59,572 మరియు ఇతర ఎన్ని నిజానికి మరింత సాంకేతిక పదాలు, 91 00:02:59,572 --> 00:03:02,030 వారు నిజంగా కేవలం వాడు చేస్తున్నారు పదాలు కలిసి అన్ని చాలా తరచుగా. 92 00:03:02,030 --> 00:03:05,020 మా ఆశలు ఒకటి అని ఉంది, తీసుకోవడం కోర్సులు దుష్ప్రభావాన్ని 93 00:03:05,020 --> 00:03:08,245 ఈ వంటి, రెడీ ఎక్కువ మంది ప్రపంచ నిజానికి బరువు చేయగలరు 94 00:03:08,245 --> 00:03:12,040 మరియు కేవలం ఇంత కొద్దిగా ప్రభావితం నాణ్యత మరియు ఆ సినిమాలు యొక్క ఖచ్చితత్వం? 95 00:03:12,040 --> 00:03:14,350 >> నిజానికి, యొక్క రియాలిటీ వద్ద ఒక లుక్ తీసుకుందాం. 96 00:03:14,350 --> 00:03:18,070 కాబట్టి ఇక్కడ సిబ్బంది ఫోటో మేరీ, మా టీచింగ్ సహచరులలో ఒక. 97 00:03:18,070 --> 00:03:20,050 మరియు ఆమె అనుకుందాం ఏదో అనుమానం. 98 00:03:20,050 --> 00:03:23,730 మరియు ఇంకా, ఒక గ్లిమ్మెర్ వార్తలు ఆమె కంటిలో సాక్ష్యం కొన్ని ముక్క, 99 00:03:23,730 --> 00:03:25,480 లేదా ఆమె కళ్ళజోడు ప్రతిబింబం లో. 100 00:03:25,480 --> 00:03:30,760 Well, మేము సినిమాలు సరిగ్గా లేకపోతే మేము జూమ్ మరియు "విస్తరించేందుకు" ఇందులో ప్రతిపాదిస్తున్నాను 101 00:03:30,760 --> 00:03:34,080 ఈ ఎంత సమాచారం ఉంది మేరీ యొక్క ముఖం ఉంది 102 00:03:34,080 --> 00:03:36,795 మీరు ఒక చిత్రం పట్టుకుని ఉన్నప్పుడు అసలు రిజల్యూషన్ తో. 103 00:03:36,795 --> 00:03:39,120 >> మరియు, నిజానికి, మీరు ఈ చుక్కలు చూడగలరు. 104 00:03:39,120 --> 00:03:41,900 మరియు ఈ ఏమి ఉన్నాయి అని పిక్సెళ్ళు, p-i-X-E-L-S 105 00:03:41,900 --> 00:03:45,740 ఇది సాధారణంగా కేవలం ఒక చతురస్రం ఒక చిత్రం స్వరకల్పన ఒక డాట్ ఉంది. 106 00:03:45,740 --> 00:03:49,200 మళ్ళీ రోజు, మరియు నిజానికి కూడా నేటి LED TVs కొన్ని నేడు 107 00:03:49,200 --> 00:03:51,950 లేదా LCD TV స్, మీరు పొందారు ఉంటే మీ గది లేదా ఇంటి వద్ద ఒకటి, 108 00:03:51,950 --> 00:03:55,100 మీరు దానికి సూపర్ దగ్గరగా అప్ వెళ్ళి, మరియు లేకపోతే అది ఒక కొంతవరకు పాత TV ప్రత్యేకించి, 109 00:03:55,100 --> 00:03:58,760 మీరు బహుశా కూడా ఈ చుక్కలు చూడగలరు మరియు ఒక చిత్రం కంపోజ్ ఏమిటి. 110 00:03:58,760 --> 00:04:00,980 >> మరియు మరింత ఉంది ఈ కంటే సమాచారం. 111 00:04:00,980 --> 00:04:05,400 మేము అర్థంలో, "విస్తరించేందుకు" కాలేదు పైగా మరియు విధమైన విషయాలు సులభం 112 00:04:05,400 --> 00:04:09,040 రకమైన విధమైన ఏమి ఊహించే రంగు మేరీ కంటికి పక్కన ఉండాలి 113 00:04:09,040 --> 00:04:10,910 కాబట్టి ఇది నిజానికి కాబట్టి pixelated కాదు. 114 00:04:10,910 --> 00:04:14,510 కానీ నేను జూమ్ ఉంచుకుంటే, అక్కడ ఆమె కంటిలో చెడు వ్యక్తి. 115 00:04:14,510 --> 00:04:16,600 ఆ వంటి అన్ని ఉంది సమాచారం మనం. 116 00:04:16,600 --> 00:04:18,920 మీరు సృష్టించలేరు ఏమీ బయటకు సమాచారం. 117 00:04:18,920 --> 00:04:20,790 కేవలం పరిమిత ఉంది అక్కడ బిట్స్ సంఖ్య. 118 00:04:20,790 --> 00:04:22,873 >> సమస్య సెట్ 4, పేరు కాబట్టి మీరు ఒక అవకాశం కలిగి 119 00:04:22,873 --> 00:04:24,580 ప్రపంచంలోని ఈ రకమైన తో ఆడటం. 120 00:04:24,580 --> 00:04:27,610 సమస్య సెట్ 4 లో, మీరు అన్వేషించడానికి చేస్తాము గ్రాఫిక్స్, మరియు ఫోరెన్సిక్స్ ప్రపంచం, 121 00:04:27,610 --> 00:04:30,870 మరియు వాస్తవానికి కోడ్ వ్రాయడానికి కోల్పోయిన చిత్రాలు కోలుకుంటుంది. 122 00:04:30,870 --> 00:04:33,510 మీరు కోడ్ వ్రాయడానికి ఉంటాం ఆ ఇప్పటికే ఉన్న చిత్రాలను అభిసంధానం 123 00:04:33,510 --> 00:04:36,120 మరియు చివరికి ఏమిటి అర్థం హుడ్ కింద జరగబోతోంది. 124 00:04:36,120 --> 00:04:38,540 >> మరియు, అది నిజానికి, హాజరవుతారు అన్ని ఆ క్లిష్టమైన కాదు. 125 00:04:38,540 --> 00:04:41,320 ఉదాహరణకు, మనము కావలెను ఒక స్మైలీ ముఖం ఎక్కడ ప్రాతినిధ్యం 126 00:04:41,320 --> 00:04:44,160 ఈ నల్ల పిక్సెళ్ళు, లేదా ఈ నల్ల చుక్కలు, 127 00:04:44,160 --> 00:04:47,230 బాగా, మేము కేవలం ప్రాతినిధ్యం వహిస్తుంది వాటిని నిజంగా ఒక బిట్మ్యాప్. 128 00:04:47,230 --> 00:04:50,040 మరియు ఉంటే మీరు ఎప్పుడైనా విన్నారు వ్యక్తీకరణ బిట్మ్యాప్, బహుశా 129 00:04:50,040 --> 00:04:52,330 ఇప్పుడు ఒక చేయడానికి మొదలవుతుంది కొంచెం సెన్స్ నేడు. 130 00:04:52,330 --> 00:04:53,580 >> మేము ఇప్పటికే ఒక బిట్ ఉంది ఏమి. 131 00:04:53,580 --> 00:04:54,160 ఇది 0 లేదా 1 అనిపిస్తుంది. 132 00:04:54,160 --> 00:04:56,201 మరియు ఒక చిహ్నం కేవలం ఏదో ఉంది కాగితం ముక్క వంటి 133 00:04:56,201 --> 00:04:59,180 మీరు ఆదేశాలు ఇస్తుంది మరియు ఉంది బహుశా ఎక్స్ మరియు వై ఆర్డినేట్ ఒక గ్రిడ్. 134 00:04:59,180 --> 00:05:00,540 కాబట్టి ఇక్కడ ఒక బిట్మ్యాప్ ఉంది. 135 00:05:00,540 --> 00:05:03,680 ఇది బిట్స్ ఒక చిహ్నం వార్తలు మలిచారు 1 స్పష్టంగా ఉంది 136 00:05:03,680 --> 00:05:07,857 తెల్ల పిక్సెల్ ప్రాతినిధ్యం అన్నారు, మరియు ఒక 0 ఒక నల్ల పిక్సెల్ ప్రాతినిధ్యం అన్నారు. 137 00:05:07,857 --> 00:05:09,440 కానీ మేము ఖచ్చితంగా అది చుట్టూ కుదుపు కాలేదు. 138 00:05:09,440 --> 00:05:11,648 ఇది నిజంగా ప్రాధాన్యత లేదు కాబట్టే మేము స్థిరమైన ఉన్నారు కాలం. 139 00:05:11,648 --> 00:05:15,570 మరియు ఇక్కడ లోపల binary--, ఎలా ఉంది ఒక కంప్యూటర్ యొక్క మెమరీ, లేదా లోపల 140 00:05:15,570 --> 00:05:18,160 మీ హార్డ్ లో ఒక ఫైల్ యొక్క drive-- మీరు నిల్వ చేసుకోవచ్చు 141 00:05:18,160 --> 00:05:20,240 స్మైలీ ముఖం చిత్రాల సరళమైన. 142 00:05:20,240 --> 00:05:23,990 కానీ మేము ఏ ఉంటాయి, కోర్సు యొక్క, ఈ చిత్రం లేకపోవడంపై? 143 00:05:23,990 --> 00:05:24,610 రంగు, కుడి? 144 00:05:24,610 --> 00:05:28,220 ఇది ఒక స్పష్టమైన తదుపరి దశలో ఉంది లేదా వృద్ది రంగు ఈ మెరుగుపరచడానికి. 145 00:05:28,220 --> 00:05:32,230 కాబట్టి దురదృష్టవశాత్తు కేవలం ఒకే బిట్ 0 లేదా 1, మేము రంగు ప్రాతినిధ్యం వహిస్తుంది. 146 00:05:32,230 --> 00:05:36,100 ఆ ఎరుపు, లేదా నీలం, లేదా కాలేదు నలుపు లేదా తెలుపు లేదా ఆకుపచ్చ, గులాబీ లేదా, 147 00:05:36,100 --> 00:05:37,420 లేదా రంగులు ఏ జతల. 148 00:05:37,420 --> 00:05:40,860 కానీ సరళత్వం కోసమని, మేము చేస్తాము కేవలం నలుపు మరియు తెలుపు భావించవచ్చును. 149 00:05:40,860 --> 00:05:45,930 >> కాబట్టి తార్కికంగా మనం ఉంటే అవసరం ఏమి మేము ఒక చిత్రం రంగు అమలు చేయదలిచిన? 150 00:05:45,930 --> 00:05:49,080 మనం ఎందుకు చేయాలి? 151 00:05:49,080 --> 00:05:51,900 ఇక్కడ పరిమిత కారకం వలె ఒక బిట్ మీకు మాత్రమే చెయ్యవచ్చు ఉంది 152 00:05:51,900 --> 00:05:55,977 రెండు రాష్ట్రాలు, 0 లేదా 1, తెలుపు ప్రాతినిధ్యం లేదా నలుపు, మీరు ఏమి అనుకుంటున్నారు? 153 00:05:55,977 --> 00:05:56,810 ప్రేక్షకులు: మరిన్ని డేటా. 154 00:05:56,810 --> 00:05:58,813 డేవిడ్ J. మలన్: మరిన్ని బిట్స్ అవును మరింత డేటా, మరింత బిట్స్. 155 00:05:58,813 --> 00:06:01,440 మరియు, నిజానికి, ఖచ్చితంగా ఎలా రంగుల చిత్రాలను ప్రాతినిధ్యం వహిస్తున్నారు. 156 00:06:01,440 --> 00:06:05,120 ఒకే బిట్ ఉపయోగించడానికి బదులు ఒక 0 లేదా ప్రతి పిక్సెల్ కోసం 1, ప్రతి డాట్, 157 00:06:05,120 --> 00:06:06,170 మీరు కేవలం బహుళ ఉపయోగించండి. 158 00:06:06,170 --> 00:06:09,660 బహుశా బహుశా సర్వసాధారణంగా 8 ఉపయోగించడానికి సమస్య సెట్ లో, నిజానికి 24 ఉపయోగించండి, మరియు 159 00:06:09,660 --> 00:06:13,300 4, మీరు ఒక ఫైల్ తో ఆడతారు సాధారణంగా 24 బిట్స్ ఉపయోగించే ఫార్మాట్. 160 00:06:13,300 --> 00:06:15,430 >> కానీ మీరు చాలా బహుశా ఉంటాయి JPEGs తెలిసిన. 161 00:06:15,430 --> 00:06:17,460 మీరు ఎప్పుడైనా తీసుకున్నారు ఉంటే మీ ఫోన్ లో ఒక ఫోటో, 162 00:06:17,460 --> 00:06:20,360 లేదా అప్లోడ్ లేదా ఏదో చూసింది ఫేస్బుక్, లేదా Flickr, ఎన్ని 163 00:06:20,360 --> 00:06:24,882 ఫోటో ఆధారిత వెబ్సైట్లను, మీరు చేసిన బహుశా ముందు ఒక JPEG ఇమేజ్ చూసిన. 164 00:06:24,882 --> 00:06:27,840 మరియు అది ఈ ఫైలు హాజరవుతారు ఫార్మాట్ మేము pset 4 లో ఉపయోగించడానికి వెళుతున్న 165 00:06:27,840 --> 00:06:30,340 అనగా మీరు చూడాలని చిత్రాలు తిరిగి ఉంటుంది 166 00:06:30,340 --> 00:06:35,160 నేను అనుకోకుండా ఒక నుండి తొలగించారు చేసిన కెమెరా పాడైన మెమరీ కార్డ్, 167 00:06:35,160 --> 00:06:35,800 మీరు రెడీ ఉంటే. 168 00:06:35,800 --> 00:06:38,490 >> మరియు అది అవుతుంది ఆ అయినప్పటికీ JPEG అందంగా sophisticated-- ఉంది 169 00:06:38,490 --> 00:06:40,906 ఇది మరింత అధునాతన నలుపు మరియు తెలుపు చుక్కలు కంటే 170 00:06:40,906 --> 00:06:44,480 అక్కడ ఎందుకంటే మేము ఒక క్షణం క్రితం చూసిన నిజానికి ఫాన్సీ అల్గోరిథంలు ఆ 171 00:06:44,480 --> 00:06:47,410 కాబట్టి, ఒక JPEG కుదించుము ఉపయోగిస్తారు మీరు ఒక నిజంగా nice కలిగి, 172 00:06:47,410 --> 00:06:49,832 నాణ్యత చిత్రం కాని ఉపయోగించి కొద్దిమంది బిట్స్. 173 00:06:49,832 --> 00:06:51,790 మరియు మేము తిరిగి వచ్చి ఉంటుంది దీర్ఘ ముందు కుదింపు. 174 00:06:51,790 --> 00:06:56,280 ఇది మొదటి హాజరవుతారు ఒక JPEG image-- మూడు బైట్లు 175 00:06:56,280 --> 00:07:02,750 ఉన్నా మీరు ఒక ఫోటో తీసుకున్నారు ఏమి of-- విలువలు 255, 216, 255 ఉన్నాయి. 176 00:07:02,750 --> 00:07:05,990 >> ఇతర మాటలలో, మీరు కేవలం బిట్స్ నమూనా చూడండి, 177 00:07:05,990 --> 00:07:09,180 మూడు ఇక్కడ ప్రాతినిధ్యం బైట్లు లేదా 24 బిట్స్ మొత్తం 178 00:07:09,180 --> 00:07:13,810 అధిక సంభావ్యత తో ఆ ప్రతిపాదించే చేయవచ్చు మీరు ఈ మొదటి మూడు వద్ద చూస్తున్నాయి 179 00:07:13,810 --> 00:07:15,230 ఒక JPEG బైట్లు. 180 00:07:15,230 --> 00:07:18,040 మరియు ఈ ఏమి తెలిసిన ఉంది ఒక JPEG సంతకం వంటి. 181 00:07:18,040 --> 00:07:20,540 ఫైల్ ఫార్మాట్లు చాలా ప్రారంభించడానికి అక్కడ ఉంటాయి బయటకు 182 00:07:20,540 --> 00:07:23,735 0 సె మరియు 1s యొక్క నిర్దిష్ట నమూనాలు తో, ఆ Windows మరియు Mac OS, మరియు iOS కాబట్టి, 183 00:07:23,735 --> 00:07:28,272 మరియు Android తెలుసు ఫైలు యొక్క ఏ రకమైన వారు అని పిలవబడే ఫైలు అదనంగా ఉంటాయి 184 00:07:28,272 --> 00:07:29,730 పొడిగింపు ఫైళ్లు చాలా కలిగి. 185 00:07:29,730 --> 00:07:32,590 మీరు .jpg ఉంటే, ఆ కంప్యూటర్కు మరొక క్లూ. 186 00:07:32,590 --> 00:07:35,310 >> కాబట్టి ఇప్పుడు ఈ చూడండి చేసుకుందాం సాంకేతికంగా కొద్దిగా. 187 00:07:35,310 --> 00:07:37,390 మేము దశాంశ తెలుసు వ్యవస్థ 9 ద్వారా 0 కాదు. 188 00:07:37,390 --> 00:07:38,740 మేము బైనరీ 0 మరియు 1 తెలుసు. 189 00:07:38,740 --> 00:07:41,842 మరియు మీరు PSet తిరిగి అనుకుంటే 0, మేము మీతో కుస్తీ కలిగి 190 00:07:41,842 --> 00:07:43,800 కొద్దిగా ఏదో హెక్సాడెసిమల్ అని, 191 00:07:43,800 --> 00:07:47,320 మీరు 16 అంకెలు కలిగి ఉన్న బదులుగా 10 లేదా బదులుగా 2. 192 00:07:47,320 --> 00:07:50,405 మరియు ఆ అంకెలు, సాంప్రదాయకంగా, ఒక 9 మరియు ద్వారా 0 ఉంటాయి 193 00:07:50,405 --> 00:07:55,040 f ఏమి సూచిస్తుంది, ఇక్కడ f ద్వారా కేవలం ఒక శీఘ్ర తెలివి దశాంశ సంఖ్య 194 00:07:55,040 --> 00:07:56,640 తనిఖీ? 195 00:07:56,640 --> 00:07:57,610 సో, 15. 196 00:07:57,610 --> 00:08:01,390 మరియు ఒక కేవలం ద్వారా 10 ప్రాతినిధ్యం వహించవలసి నేను ఇచ్చిన చేసిన ఆర్దరింగ్ స్వభావం. 197 00:08:01,390 --> 00:08:04,350 ఇది, కేవలం ఏకపక్ష కన్వెన్షన్ కానీ అది చాలా ప్రమాణంగా ఉంది. 198 00:08:04,350 --> 00:08:06,870 >> మేము ఈ నమూనా చూడండి చేస్తే మూడు లెట్ యొక్క బైట్లు 199 00:08:06,870 --> 00:08:09,620 కేవలం అది చూడండి మొదలుపెట్టిన ఎలా ఏకరీతిగా ఉంటుంది 200 00:08:09,620 --> 00:08:12,450 సాధారణంగా కంప్యూటర్ శాస్త్రవేత్తలు చూడండి మరియు ఫైళ్ళ గురించి అనుకుంటున్నాను. 201 00:08:12,450 --> 00:08:15,580 మీరు ఖచ్చితంగా గురించి ఆలోచించవచ్చు 0 సె ఫైళ్లు, మరియు 1s, మరియు దశాంశ, 202 00:08:15,580 --> 00:08:19,340 కానీ వాస్తవానికి, మేము బైనరీ ఉపయోగించడానికి ఉంటాయి లేదా మరింత సాధారణంగా hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 తిరిగి pset 0 నుండి. 204 00:08:20,760 --> 00:08:25,857 కాబట్టి నాకు ప్రపోజ్ తెలియజేయండి ఆ 255, 216, మరియు 255 0 సె మరియు 1s కేవలం ఈ నమూనాలు ఉన్నాయి. 205 00:08:25,857 --> 00:08:28,440 మరియు మీరు ఈ ఉంటే తనిఖీ చేయవచ్చు మీరు వీక్ 0 నుండి గణిత చేయాలనుకుంటున్నారా. 206 00:08:28,440 --> 00:08:30,810 కానీ, ఇప్పుడు కోసం, కేవలం ఊహించుకోవటం ఈ నిజానికి సరైనది. 207 00:08:30,810 --> 00:08:33,850 నేను కేవలం మూడు దశాంశ తిరిగి వ్రాయబడుతుంది చేసిన మూడు ద్వియాంశ విలువలను వంటి సంఖ్యలు. 208 00:08:33,850 --> 00:08:36,100 ఇప్పుడు నేను ఏమి వెళుతున్న ఉంది కేవలం కొన్ని వైట్ స్పేస్ జోడించండి 209 00:08:36,100 --> 00:08:37,266 కేవలం చదవడానికి కోసమని. 210 00:08:37,266 --> 00:08:39,940 మరియు నోటీసు, నేను వెళుతున్నాను విషయాలు కాకుండా తరలించడానికి. 211 00:08:39,940 --> 00:08:43,090 సో ముందు, తరువాత, ముందు, తర్వాత. 212 00:08:43,090 --> 00:08:46,180 నేను ఇతర ఆసక్తికరమైన ఏమీ చేయడం వెబ్ కేవలం విషయాలు విస్తరించే కంటే 213 00:08:46,180 --> 00:08:50,380 ఆ నోటీసు ఎనిమిది ప్రతి సమితి బిట్స్ ఇప్పుడు నాలుగు బిట్స్ రెండు సెట్లను ఉంది. 214 00:08:50,380 --> 00:08:54,920 ఈ హెక్సాడెసిమల్ ఎందుకంటే ఉపయోగపడుతుంది ముఖ్యంగా ఫ్యాషన్ ఉంది 215 00:08:54,920 --> 00:09:00,930 ఎందుకంటే ప్రతి హెక్సాడెసిమల్ అంకెల 0 ద్వారా f, లేదా మరింత నిర్దిష్టంగా 0 ద్వారా 15, 216 00:09:00,930 --> 00:09:03,430 ప్రాతినిధ్యం చేయవచ్చు సరిగ్గా నాలుగు బిట్స్ తో. 217 00:09:03,430 --> 00:09:07,960 ఇతర మాటలలో, హెక్సాడెసిమల్ లో మీరు ఉంటే అది కేవలం 0000 వార్తలు, ఒక 0 ప్రాతినిధ్యం అనుకుంటున్నారా, 218 00:09:07,960 --> 00:09:08,780 నాలుగు సున్నాలు. 219 00:09:08,780 --> 00:09:13,997 మరియు మీరు 15 ప్రాతినిధ్యం అనుకుంటే, నాలుగు బిట్స్ ఇది 1111 ఉంది. 220 00:09:13,997 --> 00:09:16,080 మరియు మీరు గణిత చేయండి ఉంటే, ఈ వాటిని స్థలం ఉంటే, 221 00:09:16,080 --> 00:09:18,210 ఈ 16s ప్రదేశం ఆ మీరు చేసిన ఇవ్వాలని జరగబోతోంది 222 00:09:18,210 --> 00:09:19,960 కాకుండా ఆ జరగబోతోంది క్షమించండి ఆలోచన బైనరీ లో, 223 00:09:19,960 --> 00:09:23,660 15 మీరు ఇవ్వాలని జరగబోతోంది, వాటిని స్థలం, పరుగులు తీయడం స్థానంలో, ఫోర్లు, ఎయిట్స్కి స్థానంలో. 224 00:09:23,660 --> 00:09:26,821 నాలో ఆ ప్రపోజ్ తెలియజేయండి ఎడమవైపు నాలుగు బిట్స్ సెట్ 225 00:09:26,821 --> 00:09:28,070 F కాల్ చూడాలని ఏమిటి. 226 00:09:28,070 --> 00:09:30,110 ఇది అతిపెద్ద సంఖ్య మీరు నాలుగు బిట్స్ తో సూచిస్తాయి. 227 00:09:30,110 --> 00:09:33,300 మరియు మేము ఇప్పటికే హెక్సాడెసిమల్ నుండి తెలుసు, f హెక్సాడెసిమల్ లో అతిపెద్ద అంకెల ఉంది. 228 00:09:33,300 --> 00:09:36,020 మేము అక్కడ మరో f పొందారు రెండు అక్కడ మరింత. 229 00:09:36,020 --> 00:09:38,980 మరియు ఇప్పుడు కోసం, కేవలం విశ్వాసం తీసుకోవాలని నేను గణిత కుడి చేసారు 230 00:09:38,980 --> 00:09:41,890 మరియు ఎడమ భాగంలో ఆ బిట్స్, 1101, 231 00:09:41,890 --> 00:09:43,980 హెక్సాడెసిమల్ లో d అదే విషయం. 232 00:09:43,980 --> 00:09:46,490 మరియు కుడి చేతి, 1000, కేవలం 8 ఉంది. 233 00:09:46,490 --> 00:09:48,140 >> మరియు సులభంగా ఒకరి కుడి, చూడటానికి? 234 00:09:48,140 --> 00:09:51,670 8 represents-- హక్కు ఆ ఎయిట్స్కి స్థానంలో క్రింద ఉంటుంది. 235 00:09:51,670 --> 00:09:56,040 కాబట్టి మేము eights కాలమ్ లో ఒక కలిగి మరియు ఫోర్లు, రెండు పరుగులు తీయడం లేదా వాటిని ఏమీ లేదు. 236 00:09:56,040 --> 00:09:59,830 కాబట్టి ఇప్పుడు మరింత సంప్రదాయకంగా, మానవులు ఉంటాయి ఈ వంటి హెక్సాడెసిమల్ అంకెలు రాయడానికి 237 00:09:59,830 --> 00:10:03,000 మీరు కేవలం, వాటిని కలిసి squish ఆపై మీరు 0x వాటిని ఉపసర్గ. 238 00:10:03,000 --> 00:10:05,920 ఇది కంటే ఇతర ఏమీ అర్థం ఒక human-- ఒక దృశ్య ఆధారాన్ని 239 00:10:05,920 --> 00:10:10,350 ఇక్కడ ఒక హెక్సాడెసిమల్ విలువ ఎందుకంటే వస్తుంది అది లేకపోతే స్పష్టమైన కాదు. 240 00:10:10,350 --> 00:10:13,629 >> ఇది ఆ, చివరికి, చెప్పటానికి ఉంది సున్నాలు మరియు వాటిని నమూనా, 241 00:10:13,629 --> 00:10:16,170 లేదా హెక్సాడెసిమల్ యొక్క నమూనా అంకెలు సమానమైన మీరు ఆ 242 00:10:16,170 --> 00:10:18,990 కోసం చూడటం మొదలు కానుంది సమస్య సెట్ లో 4 దీన్ని ఉంది 243 00:10:18,990 --> 00:10:22,120 మరియు సమస్య సెట్ 4 స్పెక్ నడిచే మరింత detail-- ఈ ద్వారా మీరు 244 00:10:22,120 --> 00:10:25,344 కానీ మర్మమైన విధమైన వంటి తెలుసుకోవటం ఈ మొదటి చూపులో కనిపిస్తుంది ఉండవచ్చు 245 00:10:25,344 --> 00:10:27,010 మీరు ఈ చాలా చూసిన ఆరంభమవుతుంది చేస్తున్నారు. 246 00:10:27,010 --> 00:10:30,320 నిజానికి, కూడా GDB లో, డీబగ్గర్ సోమవారం ప్రవేశపెట్టిన 247 00:10:30,320 --> 00:10:35,440 మరియు డాన్ pset 3 లో, వెళ్ళి పరిచయం తరచుగా మీరు హెక్సాడెసిమల్ విలువలు చూపించడానికి 248 00:10:35,440 --> 00:10:39,910 కేవలం వారు మరింత ఉంటాయి కాబట్టి దశాంశ లేదా బైనరీ కంటే సంప్రదాయ 249 00:10:39,910 --> 00:10:41,157 కంప్యూటర్ల ప్రపంచంలో. 250 00:10:41,157 --> 00:10:42,490 ఇప్పుడు సందర్భం ఈ ఉంచారు తెలియజేయండి. 251 00:10:42,490 --> 00:10:48,040 చాలా మీరు ఈ గుర్తు ఉండవచ్చు యొక్క నుండి వచ్చింది, ఇక్కడ చిత్రం? 252 00:10:48,040 --> 00:10:51,240 Vista, కాబట్టి పాతతరానికి కంటే ఆ Windows XP తొలి చేశాడు. 253 00:10:51,240 --> 00:10:52,620 కాబట్టి ఈ ఒక అందమైన ప్రకృతి దృశ్యం ఉంది. 254 00:10:52,620 --> 00:10:55,940 నిజానికి, మీరు online-- చుట్టూ దూర్చు ఉంటే నేను ఒక వికీపీడియా ఆర్టికల్ అని, 255 00:10:55,940 --> 00:11:00,110 ఇందులో ఎవరైనా చాలా అద్భుతంగా బయటకు వెళ్లి దొరకలేదు ప్రపంచంలో ఈ స్థానాన్ని ఏర్పాటు 256 00:11:00,110 --> 00:11:02,240 అతని లేదా ఆమె కెమెరా ఖచ్చితంగా కుడి place-- 257 00:11:02,240 --> 00:11:06,510 మరియు ఈ రోజు వంటి ఫంక్షన్ బాగుంది కానీ అది ఖచ్చితంగా అదే సెట్టింగ్ ఉంది. 258 00:11:06,510 --> 00:11:10,060 ఈ చిత్రం, అయితే, ఒక ఫైల్ లో ఉంది ఫార్మాట్ అని బిట్మ్యాప్, బి-m-p. 259 00:11:10,060 --> 00:11:12,910 మరియు మేము ఒక సూపర్ తీసుకుని వెళుతున్నాం అర్థం ఏమి వద్ద ఒక్కసారి. 260 00:11:12,910 --> 00:11:17,770 >> కాని బిట్మ్యాప్ కేవలం వేరే మార్గం పాఠశాల చిత్రాలు ఇంకా పిక్సెళ్ళు ఉపయోగించి 261 00:11:17,770 --> 00:11:19,580 0 సె మరియు 1s, చివరికి. 262 00:11:19,580 --> 00:11:23,282 కానీ త్వరగా చూపులో, ఇది ఉంది మరింత ఆసక్తికరమైన సంతకం 263 00:11:23,282 --> 00:11:24,490 ఫైలు ప్రారంభంలో. 264 00:11:24,490 --> 00:11:26,670 ఇది కేవలం మూడు కాదు బైట్లు కాకుండా అక్కడ వార్తలు 265 00:11:26,670 --> 00:11:30,770 బైట్లు నమూనాలను యొక్క మొత్తం బంచ్ అర్ధములో ముందుగా నిర్ణయించిన చేశారు. 266 00:11:30,770 --> 00:11:34,490 ఉదాహరణకు, ఎక్కడో బిట్మ్యాప్ చిత్రం యొక్క మొదటి కొన్ని బైట్లు 267 00:11:34,490 --> 00:11:37,440 పరిమాణం అవతరిస్తుంది చిత్రం, చిత్రం యొక్క వెడల్పు, 268 00:11:37,440 --> 00:11:40,390 చిత్రం యొక్క ఎత్తు, కాబట్టి ఉపయోగకరమైన మెటాడేటా, మీరు రెడీ ఉంటే. 269 00:11:40,390 --> 00:11:43,940 ఉపయోగకరమైన సమాచారం Photoshop లేదా ఏ గ్రాఫిక్స్ మీరు ఉపయోగిస్తున్నట్లయితే ప్రోగ్రామ్ 270 00:11:43,940 --> 00:11:45,180 నిజానికి పట్టించుకోనట్లు ఉండవచ్చు. 271 00:11:45,180 --> 00:11:47,170 >> ఈ కాబట్టి మరింత సమస్య 4 సెట్, కానీ ఈ 272 00:11:47,170 --> 00:11:49,220 ఆ చెప్పటానికి మాత్రమే ఉంది రోజు చివరిలో 273 00:11:49,220 --> 00:11:52,390 మీరు ఉపయోగించి చేసిన అన్ని ఫైల్ ఫార్మాట్లు years-- మైక్రోసాఫ్ట్ వర్డ్ ఫైళ్లు కోసం, 274 00:11:52,390 --> 00:11:55,820 సంఖ్యలు ఫైళ్లు, Excel ఫైళ్లను, ఫైల్ ఫార్మాట్లు ఎన్ని 275 00:11:55,820 --> 00:11:57,770 కొన్ని ఉండవచ్చు తెలిసిన ఫైల్ పొడిగింపు 276 00:11:57,770 --> 00:12:00,130 హుడ్ కింద కేవలం 0 సె మరియు 1s ఉంటాయి. 277 00:12:00,130 --> 00:12:02,970 మరియు మానవుల నిర్ణయించాము సమావేశాలు ఏమిటో, 278 00:12:02,970 --> 00:12:08,340 ఏమి 0 సె మరియు 1s రీతులు ప్రాతినిధ్యం ఒక పద, Excel ఫైల్ వర్సెస్ దాఖలు 279 00:12:08,340 --> 00:12:10,322 ఇతర ఫైల్ ఫార్మాట్లు ఎన్ని వర్సెస్. 280 00:12:10,322 --> 00:12:12,780 Pset 4 లో కాబట్టి, మీరు ఒక ఉంటుంది అవకాశం ఆ తో ఆడటం. 281 00:12:12,780 --> 00:12:14,405 >> కానీ ఏమి అది ఒక struct కలిగి అర్థం. 282 00:12:14,405 --> 00:12:18,012 ఈ ఇప్పుడు నిజానికి ఒక nice segue ఉంది మాత్రమే జంట కలిగి సి, 283 00:12:18,012 --> 00:12:20,220 అదనపు ఫీచర్స్ మేము ఇంకా చూశారు లేదు. 284 00:12:20,220 --> 00:12:24,230 ఇది ఒక అందమైన చిన్న భాష మరియు ఒకటి సి గురించి nice లక్షణాలు ఒక struct ఉంది. 285 00:12:24,230 --> 00:12:27,300 ఉదాహరణకు, మీరు ఉంటే లెట్ యొక్క represent-- కావలెను 286 00:12:27,300 --> 00:12:33,690 మీరు ఒక వేరియబుల్ కలిగి కోరుకున్నారు పేర్కొన్నట్లు కొన్ని ప్రోగ్రామ్ ఒక విద్యార్థి సూచిస్తుంది. 287 00:12:33,690 --> 00:12:37,330 బహుశా మీరు ఒక కోర్సు రాసే నమోదు కార్యక్రమం, లేదా కోర్ షాపింగ్ 288 00:12:37,330 --> 00:12:38,870 సాధనం లేదా అలాంటిదే. 289 00:12:38,870 --> 00:12:42,922 సంబంధిత డేటాని ముక్కలను ఏమిటి చూసుకొని వచ్చారు ఆ విద్యార్థికి? 290 00:12:42,922 --> 00:12:44,880 ఒక విద్యార్థి ఇలా విలువలను ఏమి ప్రాతినిధ్యం? 291 00:12:44,880 --> 00:12:45,732 అవును? 292 00:12:45,732 --> 00:12:46,940 మీరు ఒక విద్యార్థి ఒక పేరు. 293 00:12:46,940 --> 00:12:48,900 ఒక సాధారణ విద్యార్థి వేరే ఏమి కాదు? 294 00:12:48,900 --> 00:12:49,320 >> ప్రేక్షకులు: [వినబడని] 295 00:12:49,320 --> 00:12:50,200 >> డేవిడ్ J. మలన్: సో, క్షమించండి. 296 00:12:50,200 --> 00:12:50,660 >> ప్రేక్షకులు: వయసు. 297 00:12:50,660 --> 00:12:52,980 >> డేవిడ్ J. మలన్: ఒక వయసు లేదా పుట్టినరోజు సమానమైనప్పుడు, YEP. 298 00:12:52,980 --> 00:12:53,557 ఏమి? 299 00:12:53,557 --> 00:12:54,390 ప్రేక్షకులు: ID సంఖ్య? 300 00:12:54,390 --> 00:12:57,460 డేవిడ్ J. మలన్: బహుశా కాబట్టి ఒక ID సంఖ్య, ఒక ఫోన్ నంబర్, బహుశా ఒక వసతి, లేదా ఇల్లు, 301 00:12:57,460 --> 00:12:58,670 కళాశాల, లేదా అలాంటిదే లేదా. 302 00:12:58,670 --> 00:13:01,820 డేటా ముక్కలు ఎన్ని ఆ మీరు మీ పరిచయాల జాబితాకు లో కలిగి ఉండవచ్చు 303 00:13:01,820 --> 00:13:03,890 ఒక విద్యార్థి నిర్వచించే ఉండవచ్చు ఏమిటి. 304 00:13:03,890 --> 00:13:08,490 మేము కోడ్ లో, దీన్ని కోరుకుంటే కాబట్టి, మేము ఈ వంటి సాధారణ ఏదో ఉండవచ్చు. 305 00:13:08,490 --> 00:13:15,670 త్వరలో కాబట్టి ఒక కార్యక్రమం కలిగి ఉండవచ్చు ఉంది, యొక్క అని Int ప్రధాన (తప్ప) తెలియజేయండి. 306 00:13:15,670 --> 00:13:18,920 నేను ఒక ప్రాతినిధ్యం అనుకుంటే నేను ఉదాహరణకు, కలిగి ఉండవచ్చు విద్యార్థి, 307 00:13:18,920 --> 00:13:24,330 ఆ విద్యార్థి పేరు అనే స్ట్రింగ్, ఆ విద్యార్థి వసతి అనే స్ట్రింగ్, 308 00:13:24,330 --> 00:13:26,900 బహుశా ఒక పూర్ణాంకానికి విద్యార్ది కోసం ID అని. 309 00:13:26,900 --> 00:13:30,840 నేను స్ట్రింగ్ ఉపయోగించి నేను ఎందుకంటే, నేను cs50.h. తిరిగి వెళ్ళి ఉంచాలి 310 00:13:30,840 --> 00:13:33,300 బహుశా నేను stdio.h అవసరం వెళుతున్న. 311 00:13:33,300 --> 00:13:38,190 నాలో preemptively ఆ తెలియజేసేలా మరియు నేను ఉన్నాను ఇప్పుడు ఈ student.c కాల్ వెళుతున్న 312 00:13:38,190 --> 00:13:40,080 మరియు ఈ సేవ్. 313 00:13:40,080 --> 00:13:44,206 >> మరియు ఇప్పుడు నేను ఏదో ఒకటి చెయ్యాలి ఈ చరరాశులు తో. 314 00:13:44,206 --> 00:13:46,830 మరియు మేము కేవలం రాయాలో ఆ సూడో కోడ్ వ్యాఖ్య అని, 315 00:13:46,830 --> 00:13:48,829 ఇది ఆసక్తికరమైన కాదు ఎందుకంటే మేము ఇప్పుడు ఏమి. 316 00:13:48,829 --> 00:13:51,242 సరే, ఈ ప్రోగ్రామ్ ఆ ఏదో ఒక విద్యార్థి నిల్వ. 317 00:13:51,242 --> 00:13:53,450 నేను ఉంటే ఏమి అనుకుంటున్నారు నేను రెండు విద్యార్థులు నిల్వ అనుకుంటున్నారా? 318 00:13:53,450 --> 00:13:55,991 నా మొట్టమొదటి ప్రవృత్తి అన్నారు ఒక నిమిషం వేచి, అన్ని కుడి ఉండాలి, 319 00:13:55,991 --> 00:14:01,920 నేను మరొక విద్యార్థి ఉంటే ఎందుకు నాదగ్గర కేవలం స్ట్రింగ్ పేరు 2, స్ట్రింగ్ వసతి 2 చేయండి, 320 00:14:01,920 --> 00:14:04,190 పూర్ణాంకానికి id2. 321 00:14:04,190 --> 00:14:06,540 మరియు మేము పోయింది చేసిన ఈ రహదారి ముందు డౌన్ 322 00:14:06,540 --> 00:14:10,890 మరియు తెలుస్తోంది ఏమి మా పరిష్కారం ఏమిటి ఒక hackish కాపీని పేస్ట్ యొక్క రకం 323 00:14:10,890 --> 00:14:11,555 ఇక్కడ ఉద్యోగం? 324 00:14:11,555 --> 00:14:12,346 ప్రేక్షకులు: ఒక అమరిక. 325 00:14:12,346 --> 00:14:13,830 డేవిడ్ J. మలన్: అవును, మేము ఒక అర్రే వాడవచ్చు. 326 00:14:13,830 --> 00:14:15,620 కుడి ఈ చాలా త్వరగా అతిపెద్దదైన అవుతుంది. 327 00:14:15,620 --> 00:14:18,453 మీరు ఏకపక్ష యొక్క క్రమం ఉంటుంది ఈ చరరాశులు యొక్క అన్ని నామకరణ మొదలు. 328 00:14:18,453 --> 00:14:22,190 మరియు మీరు, మానవ, పెట్టాలి ఆ సరే NAME 2 సదృశంగా ట్రాక్ 329 00:14:22,190 --> 00:14:25,060 dorm2 తో id2 అనుగుణంగా ఉంటుంది. 330 00:14:25,060 --> 00:14:26,200 ఇది కేవలం ఒక గజిబిజి అవుతుంది. 331 00:14:26,200 --> 00:14:29,350 కనుక ఇది చాలా సులభం కొన్ని వారాల క్రితం నుండి రీకాల్, 332 00:14:29,350 --> 00:14:34,300 కేవలం అనే స్ట్రింగ్ పేర్లు కలిగి మరియు బహుశా మాకు ఆ మూడు ఇస్తాయి. 333 00:14:34,300 --> 00:14:36,940 ఆపై బహుశా మేము కలిగి స్ట్రింగ్ కళాశాలలో మరియు కలిగి 334 00:14:36,940 --> 00:14:41,900 వాటిలో మూడు లేదా ఒక స్థిర తో, ఐడిలు Int మరియు వాటిలో మూడు ఉన్నాయి. 335 00:14:41,900 --> 00:14:45,250 అయితే ఇప్పుడు ఈ భావం కొద్దిగా అలసత్వము, కుడి. 336 00:14:45,250 --> 00:14:49,440 మేము ఇంకా విద్యార్థులు మరియు గురించి మాట్లాడటం చేస్తున్నాం నేను నిజంగా తక్కువ స్థాయిలో నివాసస్థలం చేస్తున్నాను 337 00:14:49,440 --> 00:14:50,470 అమలు వివరాలు. 338 00:14:50,470 --> 00:14:52,790 విద్యార్థి ఒక పేరు మరియు ఒక వసతి గృహం మరియు ID. 339 00:14:52,790 --> 00:14:59,814 >> ఎందుకు నేను ఒక వేరియబుల్ డిక్లేర్ కాదు విద్యార్థి పిలిచి s కాల్. 340 00:14:59,814 --> 00:15:02,230 మరియు నేను మరొక విద్యార్థి అనుకుంటే, ఎందుకు నేను దానిని కాల్ లేదు. 341 00:15:02,230 --> 00:15:05,260 లేదా నేను ఒక మొత్తం బంచ్ అనుకుంటే విద్యార్థులు, ఎందుకు నేను లేదు 342 00:15:05,260 --> 00:15:09,740 నేను మొత్తం తరగతి కలిగి చెప్పటానికి విద్యార్థులు, మరియు అది వాటిని మూడు వార్తలు. 343 00:15:09,740 --> 00:15:12,470 ఇతర మాటలలో, ఎందుకు నేను వచ్చి కాదు అని నా సొంత డేటా రకం, పైకి 344 00:15:12,470 --> 00:15:15,641 విద్యార్థులు, లోపల ఇది ఉంది ఒక పేరు, ఒక ID ఉంది ఒక వసతి ఉంది, 345 00:15:15,641 --> 00:15:16,890 ఇతర రంగాలలో ఏ సంఖ్య. 346 00:15:16,890 --> 00:15:19,030 మరియు మీరు అవుతుంది సరిగ్గా ఆ చేయవచ్చు. 347 00:15:19,030 --> 00:15:21,850 >> కాబట్టి సి struct అని ఈ లక్షణం ఉంది. 348 00:15:21,850 --> 00:15:24,700 ఒక భాష ఫీచర్ అని మాకు ఖచ్చితంగా దీన్ని అనుమతిస్తుంది. 349 00:15:24,700 --> 00:15:28,370 నేను ముందుకు వెళ్ళి వెళుతున్న మరియు structs.h తెరుచుకుంటుంది 350 00:15:28,370 --> 00:15:32,299 మేము చూడండి వెళుతున్న ఒక విద్యార్థి యొక్క నిర్వచనం క్రింది. 351 00:15:32,299 --> 00:15:35,215 ఇది హాజరవుతారు - మరియు ఈ ఒక కూడా ఉంది ఒక ID పాల్గొన్న ఒకటి కంటే సరళమైన 352 00:15:35,215 --> 00:15:36,080 ఒక క్షణం క్రితం. 353 00:15:36,080 --> 00:15:39,120 మీరు ఆలోచన అనుకుంటే మీ ఇంట్లో డేటా రకం, 354 00:15:39,120 --> 00:15:42,750 మరియు Int పాటు, మరియు చార్ మరియు ఇది ఉనికిలో మరియు అన్ని ఈ ఇతరులు తేలుతూ 355 00:15:42,750 --> 00:15:45,810 మీరు వాచ్యంగా ద్వారా అలా చెయ్యవచ్చు typedef struct రాయడం, 356 00:15:45,810 --> 00:15:47,880 ఆపై కొన్ని గిరజాల జంట కలుపులు, ఇది లోపలి మీరు 357 00:15:47,880 --> 00:15:51,460 మీరు కావలసిన వేరియబుల్స్ జాబితా ఈ కొత్త కస్టమ్ డేటా అనుబంధం 358 00:15:51,460 --> 00:15:55,670 ఒక పేరు మరియు ఒక వసతి వంటి టైప్ మరియు అప్పుడు గిరజాల జంట కలుపులు తర్వాత 359 00:15:55,670 --> 00:15:57,860 మీరు కొత్త డేటా రకం ఒక పేరు ఇవ్వండి. 360 00:15:57,860 --> 00:15:59,220 కావున, ఉదాహరణకు, విద్యార్థి. 361 00:15:59,220 --> 00:16:03,247 >> మరియు ఇప్పుడు ఈ గురించి మంచిది అని మేము సంబంధిత కోడ్ విషయంలో చూస్తే, 362 00:16:03,247 --> 00:16:05,080 మొదటి సమావేశం, అన్ని ఈ ఉంచాలి 363 00:16:05,080 --> 00:16:08,230 గా పిలువబడే ఒక ఫైల్ ఏదో డాట్ h లో, మేము కలిగి ఉండే శీర్షికా ఫైలును 364 00:16:08,230 --> 00:16:09,780 చాలా మేమే ఉపయోగించడం ప్రారంభించారు. 365 00:16:09,780 --> 00:16:12,120 కానీ మేము ఆరంభమవుతుంది చేస్తున్నారు ఇప్పుడు కొంచెం ఉపయోగించి. 366 00:16:12,120 --> 00:16:18,650 మరియు మేము ఈ ఏమి చెయ్యగలను, చివరికి, కోడ్ యొక్క ఈ కొన్ని పంక్తులు లో 367 00:16:18,650 --> 00:16:22,130 సరిగ్గా ఆ డిక్లేర్ ఉంది డేటా రకం, ఒక విద్యార్థి. 368 00:16:22,130 --> 00:16:23,230 ఇప్పుడు యొక్క అది ఉపయోగించడానికి అనుమతిస్తున్నట్లు. 369 00:16:23,230 --> 00:16:27,274 >> నేను ఇప్పుడు వెళ్ళాలని వెళుతున్న ఒక ఫైల్ structs1.c అని. 370 00:16:27,274 --> 00:16:29,440 మరియు యొక్క ఒక పరిశీలించి వీలు ఇక్కడ కొన్ని లక్షణాలు. 371 00:16:29,440 --> 00:16:32,250 కాబట్టి ఇక్కడ stuff ఉంది ఎక్కువగా తెలిసిన, మరియు మేము చేస్తాము 372 00:16:32,250 --> 00:16:35,040 ఏమి కాదు తిరిగి వచ్చి కేవలం ఒక క్షణం లో తెలిసిన. 373 00:16:35,040 --> 00:16:39,880 కోర్సు యొక్క ఈ నా సొంత సహా ఉంటుంది అలాగే కొత్త ఇది శీర్షికా ఫైలును, 374 00:16:39,880 --> 00:16:42,580 pset 3 పేరు తప్ప, రీకాల్, మేము helpers.h ఉన్నాయి. 375 00:16:42,580 --> 00:16:45,150 కాబట్టి మీరు # ఉన్నాయి helpers.h గుర్తు ఉండవచ్చు. 376 00:16:45,150 --> 00:16:49,381 >> ఎందుకు అయితే నేను కోట్లు ఉపయోగిస్తున్నాను బదులుగా కోణ బ్రాకెట్లలో? 377 00:16:49,381 --> 00:16:50,630 అపుడు నేను వారిని మధ్య ఎంచుకోవాలి? 378 00:16:50,630 --> 00:16:52,310 దాదాపు ఎల్లప్పుడూ నేను కనిపిస్తుంది కోణ బ్రాకెట్లలో ఉపయోగించడానికి. 379 00:16:52,310 --> 00:16:55,040 ఆపై, ఒక అన్ని ఆకస్మిక న లైన్ ఆరు నేను డబుల్ కోట్స్ ఉపయోగించి వెబ్. 380 00:16:55,040 --> 00:16:55,860 ఎందుకు అని ఉంటుంది? 381 00:16:55,860 --> 00:16:56,700 అవును? 382 00:16:56,700 --> 00:16:57,725 >> ప్రేక్షకులు: [వినబడని] 383 00:16:57,725 --> 00:16:59,350 డేవిడ్ J. మలన్: ఆ ఏమి ఒక వాస్తవ వార్తలు? 384 00:16:59,350 --> 00:17:00,559 ప్రేక్షకులు: మీ IDE. 385 00:17:00,559 --> 00:17:02,475 డేవిడ్ J. మలన్: అవును, నా అసలు IDE ఉంది. 386 00:17:02,475 --> 00:17:05,690 మరియు ఎందుకంటే యొక్క IDE న తొలిచే లేదు వీలు ఆ కేవలం నేను ఉపయోగించి నేను ఒక సాధనం. 387 00:17:05,690 --> 00:17:08,119 ఆ నా ప్రస్తుత వార్తలు డైరెక్టరీ, ప్రత్యేకంగా. 388 00:17:08,119 --> 00:17:11,647 కాబట్టి structs.h నా స్వంత ఫైల్ ఉంది IDE ఇన్ వ్యవస్థాపించబడలేదు, 389 00:17:11,647 --> 00:17:14,480 ఆపరేటింగ్ సిస్టమ్ లోనే, అంతేకానీ నా ప్రస్తుత డైరెక్టరీ లో. 390 00:17:14,480 --> 00:17:16,910 కాబట్టి సమావేశం మీరు అనుకుంటే ఉంది మీ సొంత శీర్షిక ఫైలు ఉన్నాయి, 391 00:17:16,910 --> 00:17:18,200 మీరు కేవలం డబుల్ కోట్స్ ఉపయోగించడానికి. 392 00:17:18,200 --> 00:17:23,290 >> మేము ఈ విషయం కాల్ ఏమి లైన్ 8, సాధారణంగా చెప్పాలంటే? 393 00:17:23,290 --> 00:17:25,200 ఈ ఏమి ఉంది? 394 00:17:25,200 --> 00:17:28,220 # define ఏదో. 395 00:17:28,220 --> 00:17:31,040 ఈ కుడి, స్థిరాంకాలు సూచిస్తుంది? 396 00:17:31,040 --> 00:17:33,140 మీరు ఒక కలిగి అనుకొంటే మీ కార్యక్రమంలో విలువ 397 00:17:33,140 --> 00:17:35,110 మీరు మొత్తం ఉపయోగించే సార్లు బంచ్, అంతే 398 00:17:35,110 --> 00:17:39,330 అది బయటకు కారణం సదస్సును మంచి హాష్ చిహ్నం ప్రకటించాలని 399 00:17:39,330 --> 00:17:43,340 అన్ని లో, సాంప్రదాయకంగా, అప్పుడు నిర్వచించే అది కాదు అయితే word-- అప్పర్కేస్ 400 00:17:43,340 --> 00:17:45,320 ఖచ్చితంగా అవసరమైన, కానీ అది మానవ కన్వెన్షన్ 401 00:17:45,320 --> 00:17:47,210 స్థిరాంకాలు చూపడంలో వారు జంప్ అవుట్ కాబట్టి 402 00:17:47,210 --> 00:17:50,380 మీరు స్పేస్ visually-- వద్ద మరియు అప్పుడు మీకు కావలసిన విలువ 403 00:17:50,380 --> 00:17:52,250 ఆ స్థిరమైన యొక్క పేరు సమానం. 404 00:17:52,250 --> 00:17:56,110 ఏ సెమికోలన్, కానీ కేవలం మీరు అక్కడ ఆ నమూనా అనుసరించండి. 405 00:17:56,110 --> 00:17:57,770 >> సో నేను ఈ వాస్తవ కోడ్ చేస్తున్నాను. 406 00:17:57,770 --> 00:18:00,660 కాబట్టి యొక్క పరిశీలించి తెలియజేయండి ఇక్కడ ప్రధాన కార్యక్రమం. 407 00:18:00,660 --> 00:18:04,080 లైన్ 12 లో నేను structs.h ఉన్నాయి, 408 00:18:04,080 --> 00:18:06,492 నేను ఇప్పుడు అద్భుతంగా నా పారవేయడం కొత్త డేటా రకం. 409 00:18:06,492 --> 00:18:09,200 నేను, పూర్ణాంకానికి యాక్సెస్ లేదు మరియు చార్ మరియు ఫ్లోట్, మరియు తీగ, 410 00:18:09,200 --> 00:18:10,060 మరియు నీలం మరియు ఇతరులు. 411 00:18:10,060 --> 00:18:12,470 నేను ఇప్పుడు ప్రాప్తి ఒక విద్యార్థి డేటా రకం. 412 00:18:12,470 --> 00:18:17,740 లైన్ 12 లో, నేను రెండు కలపడం ఉన్నాను కాబట్టి ఒక కస్టమ్ డేటా రకం మరియు రెండు ఆలోచనలు 413 00:18:17,740 --> 00:18:18,940 వ్యూహం ఉపయోగించి. 414 00:18:18,940 --> 00:18:21,700 కాబట్టి ఈ కార్యక్రమం ఉంటే నేను నిజానికి మద్దతు అనుకుంటున్నారా 415 00:18:21,700 --> 00:18:24,320 మూడు వేర్వేరు విద్యార్థులు నా కార్యక్రమంలో, నేను 416 00:18:24,320 --> 00:18:30,480 నాకు ఒక వేరియబుల్ ఇవ్వాలని అంటున్నారు కేవలం చేయవచ్చు వీటిలో ప్రతి అనే విద్యార్థులు, 417 00:18:30,480 --> 00:18:32,970 రకం విద్యార్థులు, ఇది నా కస్టమ్ డేటా రకం. 418 00:18:32,970 --> 00:18:35,890 మరియు, ప్రత్యేకంగా, నాకు ఇవ్వండి నా వ్యూహంలో ఆ మూడు. 419 00:18:35,890 --> 00:18:37,750 >> కాబట్టి ఇప్పుడు మేము ఈ కార్యక్రమంలో ఏమి చేస్తారు? 420 00:18:37,750 --> 00:18:40,670 ఇక్కడ కేవలం ఒక లూప్ iterating వార్తలు ఆ ఎందుకంటే, 3 0 నుండి 421 00:18:40,670 --> 00:18:42,110 విద్యార్థులు విలువ ఏమిటి. 422 00:18:42,110 --> 00:18:44,420 నేను కేవలం యూజర్ ప్రాంప్ట్ వెబ్ నాకు విద్యార్థి యొక్క పేరు ఇవ్వండి. 423 00:18:44,420 --> 00:18:48,090 ఆపై లైన్ 17 లో, మేము ఎక్కువగా తెలిసిన లైన్ కలిగి. 424 00:18:48,090 --> 00:18:50,370 మేము మా పాత స్నేహితుడు కలిగి కుడివైపు GetString. 425 00:18:50,370 --> 00:18:52,345 సింటెక్స్ ఏ ముక్క స్పష్టంగా కొత్త ఉంది 426 00:18:52,345 --> 00:18:55,130 మీరు ముందు సి లో ప్రోగ్రామ్ ఎప్పుడూ ఉంటే, మరియు structs వాడలేదు? 427 00:18:55,130 --> 00:18:55,510 అవును? 428 00:18:55,510 --> 00:18:56,417 >> ప్రేక్షకులు: .name. 429 00:18:56,417 --> 00:18:57,500 డేవిడ్ J. మలన్: .name. 430 00:18:57,500 --> 00:19:01,220 కానీ ఈ, ఒక లీపు యొక్క చాలా లేదు ఇప్పుడు విద్యార్థులు బ్రాకెట్ ఎందుకంటే 431 00:19:01,220 --> 00:19:02,590 మీరు i-th విద్యార్థి ఇస్తుంది. 432 00:19:02,590 --> 00:19:04,730 మరియు మీరు ప్రవేశిస్తాడు అనుకుంటే ఆ నిర్మాణం యొక్క లోపల, 433 00:19:04,730 --> 00:19:09,490 మీరు కేవలం ఒకే కాలంలో ఉపయోగించడానికి మరియు అప్పుడు లోపల వేరియబుల్ పేరు, 434 00:19:09,490 --> 00:19:11,900 లేదా ఆ లోపల ఆస్తి మీరు యాక్సెస్ పొందడానికి కావలసిన. 435 00:19:11,900 --> 00:19:14,816 అదేవిధంగా నేను అప్పుడు ప్రాంప్ట్ ఉంటే వినియోగదారు, నాకు విద్యార్థి వసతి ఇవ్వాలని, 436 00:19:14,816 --> 00:19:18,390 మీరు అదేవిధంగా అని నిల్వ చేయవచ్చు లోపల వసతి వేరియబుల్ స్ట్రింగ్ 437 00:19:18,390 --> 00:19:19,940 ఆ విద్యార్థి నిర్మాణం. 438 00:19:19,940 --> 00:19:21,410 >> ఇప్పుడు విషయాలు కొద్దిగా ఫాన్సీ పొందండి. 439 00:19:21,410 --> 00:19:24,420 మరియు ఈ చూడండి కానుంది బహుశా చాలా చాలా త్వరలోనే. 440 00:19:24,420 --> 00:19:27,970 కానీ మీరు pset లో ఈ దూరం మరింత చూస్తారు 4, కాబట్టి ఇప్పుడు అది కేవలం మెరుపు లెట్. 441 00:19:27,970 --> 00:19:33,364 ఇది పంక్తి 23 లో ద్వారా హాజరవుతారు 38, మీరు నేను బహుశా చేస్తున్నదాన్ని ఏమి ఆలోచిస్తాడు? 442 00:19:33,364 --> 00:19:35,530 నేను వ్యాఖ్యలను తొలగించి చేసిన నేడు, కానీ వెర్షన్ కోసం 443 00:19:35,530 --> 00:19:38,660 ఆన్లైన్ కోడ్ సూచన అన్ని వ్యాఖ్యలు ఉన్నాయి. 444 00:19:38,660 --> 00:19:40,171 నేను దాదాపు అనిపించవచ్చు లేదు? 445 00:19:40,171 --> 00:19:42,530 >> ప్రేక్షకులు: అన్ని ఫైల్ సేవ్ యూజర్ ప్రవేశించిన సమాచారం. 446 00:19:42,530 --> 00:19:44,530 >> డేవిడ్ J. మలన్: అవును, ఈ ఖచ్చితంగా, ఒక కొత్త మార్గం 447 00:19:44,530 --> 00:19:46,370 మేము రెండు చూడటానికి ఆ, సి యొక్క మరొక లక్షణంగా 448 00:19:46,370 --> 00:19:48,700 అనగా నా స్వంత ఫైళ్ళను సృష్టించవచ్చు. 449 00:19:48,700 --> 00:19:51,580 ఇంతవరకు దాదాపు ప్రతి కార్యక్రమం వ్రాయలేదు మీరు స్థితిలేని ఉంది. 450 00:19:51,580 --> 00:19:53,334 వెంటనే అది అమలు చేయబడుతుంది వంటి, అంతే. 451 00:19:53,334 --> 00:19:55,000 జ్ఞాపకాలు లేదా అది జ్ఞప్తికి తెచ్చుకొను ఉంది. 452 00:19:55,000 --> 00:19:56,110 సేవ్ ఏ ఫైలు కూడా ఉంది. 453 00:19:56,110 --> 00:19:58,120 కానీ మీరు అనుకుంటున్నారు ఉంటే ఉంది ఇన్పుట్ సేవ్ 454 00:19:58,120 --> 00:20:02,100 ఒక ఆట లేదా ఒక కార్యక్రమంలో వంటి, జరిగిన ఈ వంటి, అది మేము అలా అవుతుంది. 455 00:20:02,100 --> 00:20:04,360 మరియు మీరు ఈ మరింత చూస్తారు pset 4 మరియు విభాగం లో. 456 00:20:04,360 --> 00:20:08,661 కానీ ఈ లైన్ 23 తప్పనిసరిగా students.csv అనే ఫైల్ సృష్టిస్తుంది. 457 00:20:08,661 --> 00:20:10,160 మరియు మీరు ముందు ఈ చూసిన ఉండవచ్చు. 458 00:20:10,160 --> 00:20:14,250 మీరు ముందు CS అధ్యయనం ఎప్పుడూ చేసిన కూడా, CSV కామాతో వేరుచేసిన వేరియబుల్స్. 459 00:20:14,250 --> 00:20:19,000 ఇది ఒక చాలా పేదవాని వంటిది Excel ఫైల్ యొక్క వెర్షన్, 460 00:20:19,000 --> 00:20:22,270 ఇది ప్రారంభమైంది అని అర్థం Excel లో మరియు ఆపిల్ నంబర్స్, 461 00:20:22,270 --> 00:20:23,830 మరియు వరుసలను మరియు కాలమ్లను కలిగి ఉంది. 462 00:20:23,830 --> 00:20:26,485 కానీ ఇది ఒక యాజమాన్య కాదు మైక్రోసాఫ్ట్ లేదా Apple యొక్క వంటి ఫార్మాట్. 463 00:20:26,485 --> 00:20:29,840 ఇది వేరు కేవలం కామాలతో వార్తలు మేము ఒక క్షణంలో చూస్తారు ఆ విలువలు. 464 00:20:29,840 --> 00:20:31,010 >> మరియు కేవలం ఒక అంచనా పడుతుంది. 465 00:20:31,010 --> 00:20:33,480 చాలా వద్ద లైన్ 23 లో, ముగింపు, నా రెండవ వాదన 466 00:20:33,480 --> 00:20:37,700 అని ఈ కొత్త ఫంక్షన్ f ఫైలు ఓపెన్ కోసం ఓపెన్ w ఉంది. 467 00:20:37,700 --> 00:20:39,430 W ఏమిటి సూచించడానికి ఉండవచ్చు? 468 00:20:39,430 --> 00:20:40,022 అవును? 469 00:20:40,022 --> 00:20:41,260 >> ప్రేక్షకులు: మీరు ఫైలుకు వ్రాయవచ్చును? 470 00:20:41,260 --> 00:20:42,630 >> డేవిడ్ J. మలన్: ఇది అనుమతిస్తుంది మీరు ఫైల్ వ్రాయండి. 471 00:20:42,630 --> 00:20:44,810 కాబట్టి రూపాలను ఒక జంట ఉంది మేము ఇక్కడ ప్లగ్ చేయవచ్చు. 472 00:20:44,810 --> 00:20:47,184 కానీ మీరు కేవలం చదవడానికి కావాలా ఫైలు, అది చూడండి ఉంది 473 00:20:47,184 --> 00:20:50,010 మరియు జ్ఞాపకాలలో మీరు చదివిన కేవలం కోట్ unquote "r" ఉపయోగించండి. 474 00:20:50,010 --> 00:20:53,110 మీరు వ్రాయడానికి అనుకుంటే ఫైలు, మీరు "w" unquote కోట్ ఉపయోగించడానికి. 475 00:20:53,110 --> 00:20:55,190 కూడా ఉన్నాయి కలపవచ్చు మరియు ఇతర విషయాలను 476 00:20:55,190 --> 00:20:57,356 మీరు ఇప్పటికే ఫైళ్లు సవరించడానికి కావాలా. 477 00:20:57,356 --> 00:21:00,480 ఇప్పుడు మేము ఈ చూసిన ఉంచడానికి వెళుతున్న 24 వరుసలో విషయం, అప్పుడు మేము తిరిగి వచ్చి చేస్తాము. 478 00:21:00,480 --> 00:21:02,640 NULL, అది అవుతుంది, ఉంది ఒక ప్రత్యేక విలువ ఆ 479 00:21:02,640 --> 00:21:06,070 కొన్ని విధులు ద్వారా తిరిగి చేయవచ్చు ఏదో wrong-- పోయిందో ఉంటే 480 00:21:06,070 --> 00:21:08,490 ఫైల్ ఉనికిలో ఉంటే, మీరు మెమరీ రన్నవుట్ ఉంటే, 481 00:21:08,490 --> 00:21:09,620 ఇతర లోపాల లేదా ఒక సమూహం. 482 00:21:09,620 --> 00:21:13,470 కానీ ఇప్పుడు కోసం, యొక్క కేవలం ఈ ఊహించుకోవటం తెలియజేయండి కేవలం సంప్రదాయ దోష పరిశీలన ఉంది. 483 00:21:13,470 --> 00:21:17,090 ఇక్కడ లైన్ 26 లో, నేను iterating ఉన్నాను 0 నుండి నా విద్యార్ధులకు పైగా 3 వరకు. 484 00:21:17,090 --> 00:21:20,470 మరియు ఈ విధమైన రకం ఒక కొత్త ఫంక్షన్ యొక్క, fprintf, 485 00:21:20,470 --> 00:21:21,460 కానీ కేవలం ఒక అంచనా పడుతుంది. 486 00:21:21,460 --> 00:21:24,370 Printf కేవలం ముద్రణ ఉంటే ఒక ఆకృతీకరణ స్ట్రింగ్, 487 00:21:24,370 --> 00:21:26,507 fprintf బహుశా అర్థం ఏమిటి? 488 00:21:26,507 --> 00:21:27,590 ప్రేక్షకులు: ఒక ఫైల్ ముద్రించండి. 489 00:21:27,590 --> 00:21:29,290 డేవిడ్ J. మలన్: ప్రింట్ ఒక ఒక ఫైల్ ఫార్మాట్ స్ట్రింగ్. 490 00:21:29,290 --> 00:21:31,180 అదనపు ఏమిటి f అంటే ఫైల్. 491 00:21:31,180 --> 00:21:36,420 మరియు కొత్త ఫస్ట్ వాదన ఉంది మీ ఫైలు సూచిస్తుంది వేరియబుల్. 492 00:21:36,420 --> 00:21:38,866 అప్పుడు మేము కేవలం ఒక ఫార్మాట్ కలిగి కేవలం printf వంటి స్ట్రింగ్. 493 00:21:38,866 --> 00:21:40,740 మరియు కూడా ఈ అయితే వాక్యనిర్మాణం ఈ కేవలం క్రొత్త ఉంది 494 00:21:40,740 --> 00:21:44,610 విద్యార్థి యొక్క పేరు లో ప్లగ్ అంటే, విద్యార్థి వసతి ప్లగ్ ఇన్, మరియు అప్పుడు 495 00:21:44,610 --> 00:21:47,160 fclose ఫైలు మూసివేయండి. 496 00:21:47,160 --> 00:21:49,730 ఆపై ఈ కొత్త ఉంది lastly-- మరియు మేము ఈ వచ్చి చేస్తాము 497 00:21:49,730 --> 00:21:53,240 నేను ఉండండి నేను లాంగ్ ముందు కారణాల విద్యార్థి 498 00:21:53,240 --> 00:21:54,860 అక్కడ పైన జరిగింది. 499 00:21:54,860 --> 00:21:56,820 కానీ మేము తిరిగి వచ్చి చేస్తాము ఆ లాంగ్ ముందు 500 00:21:56,820 --> 00:21:59,820 ఆ ఎందుకంటే GetString ఎంత వార్తలు నిజానికి, హుడ్ కింద పని. 501 00:21:59,820 --> 00:22:01,280 >> కాబట్టి యొక్క ఇక్కడ ఒక త్వరిత వీక్షణ తీసుకుందాం. 502 00:22:01,280 --> 00:22:04,380 నేను నా డైరెక్టరీ లో ls టైప్ చేస్తే, నేను లేదు అని గుర్తించలేకపోతే 503 00:22:04,380 --> 00:22:09,360 , students.csv అనే ఫైల్ కలిగి కేవలం లేదు, ఉనికిలో లేదు. 504 00:22:09,360 --> 00:22:14,965 నేను ఇప్పుడు ఈ కార్యక్రమం కంపైల్ చేస్తే, , structs-1 తయారు. / structs-1, 505 00:22:14,965 --> 00:22:20,570 మరియు నేను ముందుకు వెళ్లి టైప్ వెళుతున్న యేల్ బర్కిలీ నివసించే Andi. 506 00:22:20,570 --> 00:22:26,350 మేము రాబ్ చూడాలని ఎవరు ఈ రోజుల్లో థాయర్ నివసిస్తున్నారు. 507 00:22:26,350 --> 00:22:33,760 మరియు యొక్క పేరు తో రావాలి , నేను అనుకుంటున్నాను, మరియా, మాథుర్ లో 508 00:22:33,760 --> 00:22:35,100 ఉంటే నేను సరిగ్గా జ్ఞాపకం. 509 00:22:35,100 --> 00:22:36,460 >> కాబట్టి ఏమీ జరిగే తెలుస్తోంది. 510 00:22:36,460 --> 00:22:40,680 కానీ ఇప్పుడు ls టైప్ ఉంటే, students.csv ఉంది. 511 00:22:40,680 --> 00:22:43,080 యొక్క ముందుకు మరియు ఓపెన్ students.csv వీడలేదు. 512 00:22:43,080 --> 00:22:46,050 ఈ మళ్లీ ఒక చాలా ఉంది తేలికైన ఫైలు ఫార్మాట్. 513 00:22:46,050 --> 00:22:49,570 కాని నేను కేవలం ఒక ఆచారం స్వీకరించారు నేను ఇక్కడ రెండు వరుసలు మరియు నిలువు వరుసలు. 514 00:22:49,570 --> 00:22:52,020 మొదటి కాలమ్ ఉంది ప్రజలు మొదటి పేర్లు. 515 00:22:52,020 --> 00:22:55,740 రెండవ కాలమ్ విద్యార్థి ఉంది వసతి, లేదా కళాశాల, లేదా ఇల్లు, లేదా whatnot. 516 00:22:55,740 --> 00:22:57,900 మరియు ఇప్పుడు నేను ఈ సేవ్ చేసిన శాశ్వతంగా ఒక ఫైలులో. 517 00:22:57,900 --> 00:22:59,280 >> కాబట్టి అది ఆసక్తికరమైన కాదు. 518 00:22:59,280 --> 00:23:02,980 కానీ ఈ కేవలం ఒక పునాది రాయి ఇప్పుడు సమాచారం అంటిపెట్టుకుని సామర్థ్యం 519 00:23:02,980 --> 00:23:04,040 శాశ్వతంగా. 520 00:23:04,040 --> 00:23:08,340 కాబట్టి ఇప్పుడు ఏమి మరింత మేము యొక్క చూసేలా ఈ మరియు ఇతర లక్షణాలను తో. 521 00:23:08,340 --> 00:23:10,729 కానీ మొదటి, ఏ ప్రశ్నలు? 522 00:23:10,729 --> 00:23:12,145 ఒక నవ్వులాట, మరియు ఫాస్ట్ ఉంది. 523 00:23:12,145 --> 00:23:16,131 కానీ మీరు చాలా చూస్తారు pset 4 మరింత, అలాగే. 524 00:23:16,131 --> 00:23:16,630 అవును? 525 00:23:16,630 --> 00:23:19,360 >> ప్రేక్షకులు: ఒక మార్గం ఉంది ఫైల్ పేర్లు జోడించడం కొనసాగుతుంది? 526 00:23:19,360 --> 00:23:19,880 >> డేవిడ్ J. మలన్: మంచి ప్రశ్న. 527 00:23:19,880 --> 00:23:21,800 కొనసాగించడానికి ఒక మార్గం ఉంది ఫైల్ పేర్లు జోడించడం? 528 00:23:21,800 --> 00:23:22,340 అవును. 529 00:23:22,340 --> 00:23:24,630 మరియు, నిజానికి, మీరు తాకినప్పుడు అప్, ఫైలు తిరిగి తెరవడం 530 00:23:24,630 --> 00:23:26,780 మీరు కోట్ ను ఉపయోగించాలి unquote "ఒక" append కోసం, 531 00:23:26,780 --> 00:23:31,090 ఇది కేవలం ఒక కొత్త లైన్ చేర్చుతారు, ఒక కొత్త లైన్ మళ్ళీ మళ్ళీ, సరిగ్గా. 532 00:23:31,090 --> 00:23:32,010 మంచి ప్రశ్న. 533 00:23:32,010 --> 00:23:32,950 ఇతర ప్రశ్నలు? 534 00:23:32,950 --> 00:23:33,450 అవును? 535 00:23:33,450 --> 00:23:35,580 ప్రేక్షకులు: మీరు నడిచింది ఉంటే ప్రోగ్రామ్ మళ్ళీ ప్రస్తుతం, 536 00:23:35,580 --> 00:23:38,000 దానికి పేర్లు జోడించడం కొనసాగిస్తామని దాఖలు లేదా అది క్రొత్త ఫైల్ తెరుచుకుంటుంది అని? 537 00:23:38,000 --> 00:23:38,740 >> డేవిడ్ J. మలన్: Ah, మంచి ప్రశ్న. 538 00:23:38,740 --> 00:23:41,448 మీరు మళ్ళీ కుడి కార్యక్రమం నడిచింది ఉంటే ఇప్పుడు, బహుశా కొత్త పేర్లు లో టైప్, 539 00:23:41,448 --> 00:23:44,820 ఇది ఫైల్ తోడవుతాయి లేదా ఫైల్ను ఓవర్రైట్? 540 00:23:44,820 --> 00:23:47,420 తరువాతి నేను ఉన్నాను ఎందుకంటే append మోడ్ ఉపయోగించి లేదు. 541 00:23:47,420 --> 00:23:49,930 మరియు నేను గుడ్డిగా ఉన్నాను ఎందుకంటే రచనకు తెరుస్తోంది, 542 00:23:49,930 --> 00:23:51,310 అది కేవలం ఫైల్ను ఓవర్రైట్ జరగబోతోంది. 543 00:23:51,310 --> 00:23:54,570 నేను నిజానికి కలపవచ్చు చేయవలసిందల్లా అని, నేను నిజానికి ఒక దీర్ఘకాల కలిగి అనుకుంటే 544 00:23:54,570 --> 00:23:55,350 డేటాబేస్. 545 00:23:55,350 --> 00:23:58,220 >> ఇప్పుడు CSV కూడా, స్పష్టముగా, ఉపయోగపడుతుంది వంటి ఉన్నాము writing-- 546 00:23:58,220 --> 00:24:00,100 మరియు మేము చివరికి ఈ చూస్తారు తరువాత సెమిస్టర్ లో 547 00:24:00,100 --> 00:24:01,455 మేము ఇతర ప్రయోజనాల కోసం CSV లు ఉపయోగించడానికి. 548 00:24:01,455 --> 00:24:04,920 మీరు ప్రజలు అన్ని నిల్వ చేయాలనుకుంటే ఎవరు సంఘటన కోసం నమోదు చేశారు 549 00:24:04,920 --> 00:24:07,420 లేదా మీ విద్యార్థి కోసం సైన్ అప్ సమూహం లేదా అలాంటిదే, 550 00:24:07,420 --> 00:24:10,330 ఈ రకమైన డేటా నిల్వ ఫార్మాట్ సూపర్ సౌకర్యవంతంగా ఉంటుంది. 551 00:24:10,330 --> 00:24:12,580 అక్షరాలా ఎందుకంటే, నేను ఉంటే ఈ ఫైల్ డౌన్లోడ్ ఉన్నారు. 552 00:24:12,580 --> 00:24:14,540 నేను double-- కాలేదు మరియు యొక్క నిజానికి ఈ ప్రయత్నించండి తెలియజేయండి 553 00:24:14,540 --> 00:24:16,720 నేను ఇక్కడ ఎక్సెల్ లేదా నంబర్స్ ఉంటే. 554 00:24:16,720 --> 00:24:19,130 >> నేను కుడి క్లిక్ వెళుతున్న లేదా నా ఫైలు నియంత్రణ క్లిక్ చేయండి. 555 00:24:19,130 --> 00:24:20,020 వై. 556 00:24:20,020 --> 00:24:21,830 కుడి క్లిక్ చేయండి లేదా నా ఫైలు నియంత్రణ క్లిక్ చేయండి. 557 00:24:21,830 --> 00:24:24,960 న కమ్, నా మౌస్ సహకరించింది లేదు. 558 00:24:24,960 --> 00:24:32,694 నేను వెళుతున్న Download-- కాబట్టి ఇక్కడ అన్ని ఫైళ్లను డౌన్లోడ్ 559 00:24:32,694 --> 00:24:33,860 కేవలం నేను ఈ ఒక పట్టుకోడానికి చేయవచ్చు. 560 00:24:33,860 --> 00:24:37,850 ఈ పనుల ఉంటే యొక్క చూసేలా students.csv-- మొదటిసారి 561 00:24:37,850 --> 00:24:39,310 నేను ఏక్టివేట్. 562 00:24:39,310 --> 00:24:41,360 ఇప్పుడు వారు నా పరిచయాలు చూడాలనుకుంటే. 563 00:24:41,360 --> 00:24:44,310 ఇప్పుడు, నేను నమోదు చేయాలి. 564 00:24:44,310 --> 00:24:47,620 ఇది CSV లు ఉపయోగించడానికి ఎంత సులభం చూడండి? 565 00:24:47,620 --> 00:24:50,840 అవును, తాజాగా ఉంచండి. 566 00:24:50,840 --> 00:24:52,375 సరే, ఇప్పుడు మేము తరగతి కోసం సిద్ధంగా ఉన్నారు. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 ఓహ్, ఓకే, కొత్త ఏమిటి? 569 00:25:00,370 --> 00:25:02,920 సరే, దగ్గరగా. 570 00:25:02,920 --> 00:25:04,750 ఆ మాంత్రిక ఉంది. 571 00:25:04,750 --> 00:25:07,280 సరే, ఇప్పుడు మేము అప్డేట్ ఉంటుంది. 572 00:25:07,280 --> 00:25:10,890 మరియు ఇప్పుడు, మర్చిపోయాను ఏమి నేను నిజానికి తెరుచుకున్న ఫైల్ 573 00:25:10,890 --> 00:25:13,090 కానీ అక్కడ ఫంక్షన్ ఏమి మేము వెళ్ళి. 574 00:25:13,090 --> 00:25:16,341 OK, కాబట్టి ఇప్పుడు మేము ఒక Excel ఫైల్ ఉంటుంది. 575 00:25:16,341 --> 00:25:18,290 ధన్యవాదాలు. 576 00:25:18,290 --> 00:25:20,764 >> OK, నేను అలా చేసినందుకు చాలా దానికి సులభమైన భాగంగా ఉండేది. 577 00:25:20,764 --> 00:25:23,930 కోర్సు యొక్క నేను ముందుగానే ఇన్స్టాల్ కాలేదు Excel లేదా సంఖ్యలు, లేదా ఏ ప్రోగ్రామ్. 578 00:25:23,930 --> 00:25:25,846 కానీ ఈ ఎందుకంటే, nice ఉంది ఇప్పుడు నేను చేయవచ్చు 579 00:25:25,846 --> 00:25:28,090 ప్రామాణిక ఫార్మాట్ డేటా. 580 00:25:28,090 --> 00:25:30,294 >> కాబట్టి ఇప్పుడు చూద్దాం సందర్భం మేము వదిలి పేరు మారడం 581 00:25:30,294 --> 00:25:32,710 ఆరంభమవుతుందని చివరిసారి, శిక్షణ చక్రాలు టేకాఫ్. 582 00:25:32,710 --> 00:25:34,543 కానీ మొదటి, మీరు కాదు ఈ ముందువి భోజనం చూడండి 583 00:25:34,543 --> 00:25:38,150 మళ్ళీ ఫైర్ వద్ద ఇక్కడ జరుగుతున్న మరియు న్యూ హవెన్ లో కేంబ్రిడ్జ్, సితార్ లో ఐస్. 584 00:25:38,150 --> 00:25:43,150 ASAP CS50s వెబ్ సైట్ సైన్ అప్ చేయండి CS50 విద్యార్థులు మరియు సిబ్బంది చేరడానికి. 585 00:25:43,150 --> 00:25:46,090 >> కాబట్టి మేము శిక్షణ చక్రాలు పట్టింది సోమవారం ఆఫ్ క్రింది విధంగా 586 00:25:46,090 --> 00:25:49,120 స్ట్రింగ్ డిక్లేర్డ్ చెయ్యబడింది కొంత సమయం కోసం CS50s లైబ్రరీ. 587 00:25:49,120 --> 00:25:52,650 ఇది అనుమతిస్తుంది ఎందుకంటే ఇది మంచిది మాకు ఉండటం వంటి వేరియబుల్స్ గురించి మాట్లాడటానికి 588 00:25:52,650 --> 00:25:54,660 పూర్తి పదాలు మరియు వాక్యాలను మరియు మరింత. 589 00:25:54,660 --> 00:25:56,710 కానీ అది లేదు స్ట్రింగ్ హాజరవుతారు. 590 00:25:56,710 --> 00:26:00,200 కేవలం పర్యాయపదంగా, లేదా ఒక అలియాస్ ఉంది, మేము ఏదో కోసం సృష్టించిన ఆ 591 00:26:00,200 --> 00:26:03,780 నిజానికి కొంచెం ఉంది సాంకేతిక ఒక చార్ * అని. 592 00:26:03,780 --> 00:26:07,900 >> నిజానికి, మేము ఒక ఉదాహరణ చూసిన సోమవారం ఒక కార్యక్రమంలో 593 00:26:07,900 --> 00:26:11,200 మేము అంచనా చాలా వంటి ప్రవర్తించే లేదు. 594 00:26:11,200 --> 00:26:13,630 ఈ సరిపోల్చండి -0, ఫైలు ఉంది. 595 00:26:13,630 --> 00:26:17,910 మరియు ఉంటే సరిపోల్చండి -0 గుర్తుకు నేను సోమవారం కార్యక్రమం కంపైల్ చెయ్యండి 596 00:26:17,910 --> 00:26:22,670 మరియు అమలు -0 సరిపోల్చండి మరియు తల్లి లో టైప్ మళ్ళీ చిన్న లో చిన్న, మరియు తల్లి. 597 00:26:22,670 --> 00:26:25,320 కార్యక్రమం నేను పట్టుబట్టారు వివిధ విషయాలను టైప్, 598 00:26:25,320 --> 00:26:29,210 కూడా తల్లి, అన్ని అయితే చిన్న, దృష్టి ఒకే విధంగా ఉంటుంది. 599 00:26:29,210 --> 00:26:31,990 కాబట్టి చిన్న సమాధానం ఏమిటి కంప్యూటర్ ఆలోచించడం ఎందుకు కోసం 600 00:26:31,990 --> 00:26:34,500 ఆ రెండు తీగలను భిన్నంగా ఉంటాయి? 601 00:26:34,500 --> 00:26:35,250 అవును? 602 00:26:35,250 --> 00:26:36,534 >> ప్రేక్షకులు: [వినబడని] 603 00:26:36,534 --> 00:26:37,450 డేవిడ్ J. మలన్: రైట్. 604 00:26:37,450 --> 00:26:39,600 సో, తల్లి, మొదటి సారి నేను ఉండటం, అది టైప్ 605 00:26:39,600 --> 00:26:42,710 నా కంప్యూటర్ యొక్క ఎక్కడో నిల్వ కాని మెమొరీ వేరే ప్రదేశంలో 606 00:26:42,710 --> 00:26:44,690 రెండవసారి కంటే నేను అమ్మ లో టైప్ చేయండి. 607 00:26:44,690 --> 00:26:46,580 ఇప్పుడు అది ఖచ్చితంగా ఆప్టిమైజ్ చేయవచ్చు. 608 00:26:46,580 --> 00:26:49,205 కంప్యూటర్ స్మార్ట్ కావచ్చు మరియు హే, ఈ రెండు తీగలను తెలుసుకోవటం 609 00:26:49,205 --> 00:26:49,954 వారు ఒకేలా ఉన్నారు. 610 00:26:49,954 --> 00:26:51,520 నాకు విస్తారంగా నిల్వ లేదు లెట్. 611 00:26:51,520 --> 00:26:54,229 కానీ కంప్యూటర్లు అలా లేదు ఆప్టిమైజేషన్ మీరు వారికి తెలియజేయవచ్చు తప్ప. 612 00:26:54,229 --> 00:26:56,061 కాబట్టి, డిఫాల్ట్గా, వారు కేవలం వదులుకోవడానికి వెళుతున్న 613 00:26:56,061 --> 00:26:57,670 మెమరీలో రెండు వేర్వేరు ప్రదేశాల్లో. 614 00:26:57,670 --> 00:27:01,570 అందువలన, మరింత స్పష్టమైన ఉండాలి మేము రెండు రెమ్మలు పోలిస్తే 615 00:27:01,570 --> 00:27:03,950 మొదటి పిలిచారు లు, రెండవది 616 00:27:03,950 --> 00:27:08,530 t, ప్రత్యేకంగా నేను ఏమి లైన్ 13 న ఇక్కడ పోల్చడం? 617 00:27:08,530 --> 00:27:09,494 అవును. 618 00:27:09,494 --> 00:27:12,390 >> ప్రేక్షకులు: ఇది మెమరీ లో స్థానం వేరియబుల్ ఆకర్షిస్తాయి. 619 00:27:12,390 --> 00:27:14,900 >> డేవిడ్ J. మలన్: ఖచ్చితంగా, నేను మెమరీలో స్థానంలో పోల్చడం 620 00:27:14,900 --> 00:27:16,300 ఆ వేరియబుల్స్ చూపారు. 621 00:27:16,300 --> 00:27:20,560 సో ప్రత్యేకంగా ఉంటే mom వద్ద ఉంది బైట్ సంఖ్య 1, 2, మరియు 3, 622 00:27:20,560 --> 00:27:24,020 మరియు 4-- ఎందుకంటే బాక్ స్లాష్ గుర్తు 0 చివరిలో అన్ని మార్గం ఉండాలి. 623 00:27:24,020 --> 00:27:29,420 మరియు mom, చి-o-m ఇతర ఉదాహరణకు, చిరునామా 10, 11, 12, మరియు 13 వద్ద ఉంది. 624 00:27:29,420 --> 00:27:33,100 నేను 1 పోల్చడం జరిగింది, ఆ చిరునామా, మెమరీ ఆ నగర, 625 00:27:33,100 --> 00:27:35,160 10 వ్యతిరేకంగా, ఇది ఖచ్చితంగా కాదు అదే. 626 00:27:35,160 --> 00:27:36,260 1 10 కాదు. 627 00:27:36,260 --> 00:27:39,620 >> కాబట్టి ఈ nice ఉంది ఇది అందంగా సూటిగా ఉంది. 628 00:27:39,620 --> 00:27:42,870 కానీ అది అజమాయిషీ సమస్యాత్మక ఉంది మేము తీగలను పోల్చడం అనిపించవచ్చు కాదు. 629 00:27:42,870 --> 00:27:44,930 కాబట్టి fundamentally-- మరియు ఈ తక్కువ స్థాయిలో, 630 00:27:44,930 --> 00:27:47,300 మీరు అమలు కోరుకుంటే ఒక కార్యక్రమం పోల్చడానికి 631 00:27:47,300 --> 00:27:50,270 రెండు వేర్వేరు పదాలు వినియోగదారు, నాణ్యత కోసం సైన్ టైప్ 632 00:27:50,270 --> 00:27:53,944 వారు చార్ వరుసలో చేయండి కేవలం సాధారణ పరంగా చార్, 633 00:27:53,944 --> 00:27:55,360 మనం స్పష్టంగా, ఏమి చేయాలి? 634 00:27:55,360 --> 00:27:57,940 ఇది కేవలం తగినంత కాదు ఆ రెండు చిరునామాలు చూడండి. 635 00:27:57,940 --> 00:27:58,860 మనం ఏమి చేయాలి? 636 00:27:58,860 --> 00:27:59,360 అవును? 637 00:27:59,360 --> 00:28:01,120 >> ప్రేక్షకులు: ద్వారా iterate స్ట్రింగ్ [వినబడని]. 638 00:28:01,120 --> 00:28:02,600 >> డేవిడ్ J. మలన్: అవును, లెట్స్ స్ట్రింగ్ ద్వారా iterate. 639 00:28:02,600 --> 00:28:05,808 లూప్, కొంత లూప్ ఒక ఉపయోగించవచ్చు లెట్, లేదా మీరు చాలా సౌకర్యంగా ఉన్నాము సంసార. 640 00:28:05,808 --> 00:28:08,840 మరియు మేము ఎక్కడో రెండు తీగలను పొందారు మెమరీలో, ఒకరి యొక్క చూద్దాం 641 00:28:08,840 --> 00:28:11,770 మొదటి పాత్ర, అప్పుడు ప్రతి రెండవ పాత్ర, అప్పుడు మూడవ మరియు నాల్గవ, 642 00:28:11,770 --> 00:28:15,206 మరియు ఐదవ మేము హిట్ వరకు ఏమి ప్రత్యేక కాపలాదారుడు విలువ? 643 00:28:15,206 --> 00:28:16,080 ప్రేక్షకులు: [వినబడని] 644 00:28:16,080 --> 00:28:18,800 డేవిడ్ J. మలన్: అవును, బాక్ స్లాష్ సున్నా గాని స్ట్రింగ్ లో పాయింట్ వద్ద 645 00:28:18,800 --> 00:28:20,100 మేము అంతే నిర్ణయించవచ్చు. 646 00:28:20,100 --> 00:28:21,970 మేము ప్రతి పాత్ర సరిపోలిన? 647 00:28:21,970 --> 00:28:22,990 లేకపోతే, తప్పుడు తిరిగి. 648 00:28:22,990 --> 00:28:24,770 అలా అయితే నిజమైన తిరిగి. 649 00:28:24,770 --> 00:28:28,800 అందువలన, ఏమి ఈ వెర్షన్ సరిగ్గా వార్తలు కార్యక్రమం సరిపోల్చండి 1.c చేస్తుంది. 650 00:28:28,800 --> 00:28:31,677 ఇది సమానంగా ఏమి మేము నేను చేసిన తప్ప సోమవారం చూశారు 651 00:28:31,677 --> 00:28:34,760 అయితే పదం స్ట్రింగ్ విమోచనం సంపాదించిన అన్ని ఎలాంటి క్రియాత్మక impact-- ఉంది 652 00:28:34,760 --> 00:28:37,450 నేను ఇప్పుడు ఏమి చేస్తున్నానో తీస్తూ కొన్ని దృశ్య శిక్షణ చక్రాలు, 653 00:28:37,450 --> 00:28:40,880 కానీ స్పష్టంగా చూడడానికి s మరియు t విలాసాలు. 654 00:28:40,880 --> 00:28:43,020 మరియు ఆ, ఏమి తార చుక్క, సూచిస్తుంది 655 00:28:43,020 --> 00:28:46,690 ఒక చిరునామా లేకపోతే అంటారు మరింత సాంకేతికంగా ఒక పాయింటర్ గా. 656 00:28:46,690 --> 00:28:49,880 >> అందుకే లు ప్రకటిస్తాయి లైన్ 9 మరియు చార్ * s చెప్పటానికి, 657 00:28:49,880 --> 00:28:52,160 నాకు ఒక స్ట్రింగ్ ఇవ్వాలని కాదు. 658 00:28:52,160 --> 00:28:56,360 నాకు దీని వేరియబుల్ ఇవ్వాలని అర్థం జీవితం లో ప్రయోజనం ఒక చిరునామా నిల్వ చేస్తారు. 659 00:28:56,360 --> 00:29:00,400 నేను ఉంచాలి గురించి am ఎందుకంటే అది ఒక స్ట్రింగ్ యొక్క చిరునామా. 660 00:29:00,400 --> 00:29:03,500 నిజానికి, GetString, అని స్పష్టమైన, ఒక స్ట్రింగ్ తిరిగి లేదు. 661 00:29:03,500 --> 00:29:06,110 ఇది తల్లి తిరిగి లేదు బాక్ స్లాష్ సున్నా, కేవలంగా. 662 00:29:06,110 --> 00:29:10,005 ప్రత్యేకంగా ఏమి GetString లేదు మరియు ఖచ్చితంగా తిరిగి? 663 00:29:10,005 --> 00:29:10,880 ప్రేక్షకులు: [వినబడని] 664 00:29:10,880 --> 00:29:14,080 డేవిడ్ J. మలన్: ఒక చిరునామా, మొదటి పాత్ర యొక్క చిరునామా 665 00:29:14,080 --> 00:29:16,070 కొన్ని స్ట్రింగ్ లో సంపాదించిన చేసింది. 666 00:29:16,070 --> 00:29:19,250 కాబట్టి ఇప్పుడు మేము చూసిన చేస్తున్నారు మళ్ళీ ఒక ప్రత్యేక కీవర్డ్. 667 00:29:19,250 --> 00:29:20,640 మరియు, నేను ఈ ముందు పేర్కొన్నట్లు. 668 00:29:20,640 --> 00:29:23,620 ఈ మంచి ఒడంబడిక ఉండాలి అన్నారు మేము ఇప్పుడు మళ్ళీ మళ్ళీ చూస్తారు. 669 00:29:23,620 --> 00:29:27,540 నేను నిర్ధారించుకోండి తనిఖీ చేస్తున్నాను లు శూన్య కాదు మరియు t శూన్య కాదు. 670 00:29:27,540 --> 00:29:30,100 నిజంగా నా ఆధారంగా ఎందుకంటే శీఘ్ర ప్రస్తావన ముందు, 671 00:29:30,100 --> 00:29:35,510 GetString లేదు తిరిగి ఉంటే కావచ్చు ఏమి ఒక చిరునామా కానీ మళ్ళీ ఇది N-U-L-L, 672 00:29:35,510 --> 00:29:36,990 కొన్ని ప్రత్యేక విలువ? 673 00:29:36,990 --> 00:29:37,890 >> ప్రేక్షకులు: లోపం. 674 00:29:37,890 --> 00:29:38,600 >> డేవిడ్ J. మలన్: ఇది ఒక లోపం. 675 00:29:38,600 --> 00:29:39,550 ఎక్కడో తేడ జరిగింది. 676 00:29:39,550 --> 00:29:41,341 మరియు సాధారణంగా ఏమి ముఖ్యంగా, జరిగే 677 00:29:41,341 --> 00:29:45,162 strings-- ఇది కావచ్చు advance-- తెలియని పొడవు 678 00:29:45,162 --> 00:29:46,870 బహుశా కంప్యూటర్లు ' మెమరీ, బహుశా 679 00:29:46,870 --> 00:29:49,280 మీరు ఒక లో టైప్ దీర్ఘ పదం లేదా వాక్యం 680 00:29:49,280 --> 00:29:51,880 లేదా అంత పెద్ద వ్యాసం అతికించారు కేవలం తగినంత మెమరీ ఉంది. 681 00:29:51,880 --> 00:29:55,340 అందువలన GetString తిరిగి కాదు మొత్తం విషయం యొక్క చిరునామా 682 00:29:55,340 --> 00:29:56,620 కాబట్టి అది కేవలం ఏమీ తిరిగి. 683 00:29:56,620 --> 00:30:00,580 మరియు అది ఒక లోపం జరిగింది చెప్పారు ప్రత్యేక శూన్య విలువను ఇచ్చారు. 684 00:30:00,580 --> 00:30:02,890 అది మాట్లాడటానికి, సున్నా చిరునామా ఉంది. 685 00:30:02,890 --> 00:30:06,157 >> ఇప్పుడు దాన్ని మారుతుంది సి వస్తుంది ఆ మళ్ళా చేసే ఫంక్షన్. 686 00:30:06,157 --> 00:30:09,240 మేము ఈ అమలు లేదు లూప్ లేదా కొంత లూప్ మేమే కోసం. 687 00:30:09,240 --> 00:30:11,150 మేము ఒక ఫంక్షన్ ఉపయోగించవచ్చు, క్లుప్తమైన అని, 688 00:30:11,150 --> 00:30:15,400 దీని comp కదిలించు, లేదా స్ట్రింగ్ సరిపోల్చండి జీవితం లో ప్రయోజనం ఖచ్చితంగా అలా ఉంది. 689 00:30:15,400 --> 00:30:19,990 మీరు ఇది రెండు పాయింటర్లు, రెండు చిరునామాలు ఇవ్వాలని, మరియు ఇది ఆ చిరునామాలను వెళతారు 690 00:30:19,990 --> 00:30:23,130 ఆపై లేఖ సరిపోల్చండి నాణ్యత కోసం అక్షరానికి లేఖ, 691 00:30:23,130 --> 00:30:26,610 నిజమైన ఏమిటి మాత్రమే ఆపటం? 692 00:30:26,610 --> 00:30:31,540 అకారణంగా comp కదిలించు వచ్చినపుడు కేవలం స్పష్టతను iterating ఉండాలి ఆపడానికి? 693 00:30:31,540 --> 00:30:35,400 అది ఒక బాక్ స్లాష్ 0 తగిలినప్పుడు గాని స్ట్రింగ్, ఆ సమయంలో అది నిర్ణయించవచ్చు 694 00:30:35,400 --> 00:30:38,910 ప్రతిదీ, సరిపోలిన లేదా ఒక వ్యత్యాసం ఉంది? 695 00:30:38,910 --> 00:30:42,740 >> మేము ఇప్పుడు ఈ అమలు మరియు కనుక, ప్రయత్నించండి మా చిన్న క్యాపిటలైజేషన్ గేమ్, 696 00:30:42,740 --> 00:30:49,260 కాబట్టి సరిపోల్చండి -1, ./compare-1 తయారు, మరియు చిన్న లో రెండు సార్లు తల్లి టైప్ చేయండి. 697 00:30:49,260 --> 00:30:50,560 ఇప్పుడు అదే విషయం. 698 00:30:50,560 --> 00:30:54,080 మరియు నేను మళ్ళీ దాన్ని చిన్న మరియు అప్పుడు బహుశా పెద్ద. 699 00:30:54,080 --> 00:30:56,720 ఇప్పుడు అది నిజంగా వేరుచేస్తుంది ఉన్నత మరియు చిన్నబడి మధ్య. 700 00:30:56,720 --> 00:31:00,440 కాబట్టి అన్ని ఆ కష్టం లేదా మాయా, కానీ అది ఇప్పుడు వివరించేందుకు లేదు 701 00:31:00,440 --> 00:31:03,140 ఏమి హుడ్ కింద జరగబోతోంది. 702 00:31:03,140 --> 00:31:07,640 >> కాబట్టి మనం గ్రహించలేని ఏమి పాఠం ఈ రకమైన నుండి? 703 00:31:07,640 --> 00:31:08,980 కాబట్టి యొక్క ఈ పరిశీలించి తెలియజేయండి. 704 00:31:08,980 --> 00:31:15,380 నేను ముందుకు వెళ్లి ఒక రాయాలో శీఘ్ర ప్రోగ్రామ్ ఇక్కడ కాపీని-0 అని. 705 00:31:15,380 --> 00:31:21,594 ఇప్పుడు యొక్క ముందుకు మరియు నిజానికి వీడలేదు , యొక్క నకలు 0 దీన్ని వీలు 706 00:31:21,594 --> 00:31:23,010 నేను ఇక్కడ మేం ఏమి పరిశీలించి. 707 00:31:23,010 --> 00:31:24,712 నేను మొదటి వినియోగదారు చెప్పడం, ఏదో చెప్పటానికి. 708 00:31:24,712 --> 00:31:26,420 అప్పుడు నేను ఒక స్ట్రింగ్ పొందండి మరియు నేను s లో నిల్వ. 709 00:31:26,420 --> 00:31:29,810 లు సమానం ఉంటే అప్పుడు నేను తనిఖీ NULL సమానం, కేవలం 1 తిరిగి. 710 00:31:29,810 --> 00:31:31,590 కాబట్టి ఈ కేవలం ప్రామాణిక లోపం తనిఖీని ఉంది. 711 00:31:31,590 --> 00:31:33,112 ఆసక్తికరంగా ఏమీ జరిగింది. 712 00:31:33,112 --> 00:31:36,320 నిజానికి, మేము తప్పు వదిలించుకోవటం అయితే తనిఖీ, ఈ వారం 1 కోడ్ కనిపిస్తోంది 713 00:31:36,320 --> 00:31:36,985 ఈ క్షణం లో. 714 00:31:36,985 --> 00:31:39,110 కానీ నేను ఒక పొందుటకు ప్రారంభించారు చేసిన గురించి మంచి కొద్దిగా. 715 00:31:39,110 --> 00:31:43,340 >> ఇప్పుడు లైన్ 16 లో, ఒక వారం క్రితం, బహుశా కూడా ఒక జంట రోజులు లేదా నిమిషాల క్రితం, 716 00:31:43,340 --> 00:31:46,720 మీరు లైన్ 16 అనవచ్చు ఒక వేరియబుల్ అని t సృష్టించడం 717 00:31:46,720 --> 00:31:48,219 మరియు కాపీ అది లోకి రాదు. 718 00:31:48,219 --> 00:31:50,010 మరియు ఒక సంపూర్ణ వార్తలు సహేతుకమైన takeaway. 719 00:31:50,010 --> 00:31:51,560 కానీ ఇప్పుడు మరింత ఖచ్చితమైన ఉండాలి. 720 00:31:51,560 --> 00:31:54,190 లైన్ 16 లో ఏం జరిగింది? 721 00:31:54,190 --> 00:31:56,170 ఏం కాపీ విధానం ఉంది కుడి నుండి ఎడమకు? 722 00:31:56,170 --> 00:31:56,669 అవును? 723 00:31:56,669 --> 00:31:58,490 ప్రేక్షకులు: t లు ఒక చిరునామా పెరిగిపోతుంది? 724 00:31:58,490 --> 00:32:01,220 >> డేవిడ్ J. మలన్: ఖచ్చితంగా t s యొక్క చిరునామా పెరిగిపోతుంది. 725 00:32:01,220 --> 00:32:05,170 నేను వెళ్ళి ఉంటే, ఇప్పుడు స్పష్టమైన ఉండాలి తిరిగి ముందు ఉదాహరణకు కు 726 00:32:05,170 --> 00:32:08,520 మరియు నేను నేను సైన్ టైప్ చేసిన విషయం డ్రా. 727 00:32:08,520 --> 00:32:11,640 నేను టైప్ చేసిన దానికి in-- ఇక్కడ లు, మరియు ఇక్కడ 728 00:32:11,640 --> 00:32:15,830 నేను ఎక్కడో టైప్ చేసిన ఏమి జ్ఞాపకశక్తి, తల్లి ఆపై ఒక బాక్ స్లాష్ 729 00:32:15,830 --> 00:32:17,840 నాకు జోడించారు ఆ 0. 730 00:32:17,840 --> 00:32:23,060 నేను ఇక్కడ నిల్వ గుర్తుకు ఈ నగర 1, 2, 3, 4 వద్ద ఉంది 731 00:32:23,060 --> 00:32:24,655 ఈ విధంగా ప్రస్తుతం ఏమిటి. 732 00:32:24,655 --> 00:32:29,220 లైన్ 16 న చేస్తే, నేను నాకు ఇవ్వాలని అంటున్నారు మరొక వేరియబుల్ అని t మరియు స్టోర్ 733 00:32:29,220 --> 00:32:33,590 లు విలువ వద్ద, ఏమి ఇక్కడ నిల్వఉంటోంది తల్లి కాదు రెడీ 734 00:32:33,590 --> 00:32:35,480 కానీ కేవలం సంఖ్య 1. 735 00:32:35,480 --> 00:32:38,520 >> మేము ఈ కార్యక్రమంలో ముందుకు చూస్తే ఇప్పుడు, ఏ జరిగే అవకాశముంది? 736 00:32:38,520 --> 00:32:40,690 సో అక్కడ గమనిస్తారు ఈ ఫంక్షన్ మీరు వాటిని 737 00:32:40,690 --> 00:32:44,410 సీజర్ కోసం కొంతకాలం క్రితం ఈ ఉపయోగించారు, లేదా విజెనెరే, లేదా ఉండవచ్చు కాదు వద్ద అన్ని. 738 00:32:44,410 --> 00:32:48,170 నేను ఉన్నాను, నా printf దావా కాపీని t పెట్టుబడిగా వెళుతున్నాను. 739 00:32:48,170 --> 00:32:51,616 మొదటి లైన్ 19, శీఘ్ర తెలివి లో , t యొక్క strlen తనిఖీలు పొడవును తనిఖీ. 740 00:32:51,616 --> 00:32:53,740 నేను అనుకుంటున్న ఎందుకంటే ఏదో చూపడంలో ప్రయత్నించండి 741 00:32:53,740 --> 00:32:55,104 ఒక వేళ ఏ తీగ ఉంది. 742 00:32:55,104 --> 00:32:57,520 యూజర్ కేవలం ఎంటర్ నొక్కండి చూపడంలో ఏమీ లేదు. 743 00:32:57,520 --> 00:33:01,100 కాబట్టి నేను లైన్ 21 చేయాలనుకుంటున్నారా లేదు. 744 00:33:01,100 --> 00:33:05,758 కాబట్టి లైన్ 21 కేంద్రీకరణ ఉంటుంది ఇది స్పష్టంగా లేఖ, T లో? 745 00:33:05,758 --> 00:33:06,514 >> ప్రేక్షకులు: m? 746 00:33:06,514 --> 00:33:08,722 డేవిడ్ J. మలన్: ఇది కనిపిస్తుంది వంటి అది కాపీ ఇది ఒకటి? 747 00:33:08,722 --> 00:33:09,486 ప్రేక్షకులు: m. 748 00:33:09,486 --> 00:33:10,450 డేవిడ్ J. మలన్: ఉహ్, m. 749 00:33:10,450 --> 00:33:12,685 సరే, మొదటి నాకు అలా నేను రెడీ గమనించవచ్చు ఎందుకంటే 750 00:33:12,685 --> 00:33:14,935 , toupper ప్రయాణిస్తున్న ఇది మీరు ఎప్పుడూ చూడలేదు ఉంటే అది 751 00:33:14,935 --> 00:33:16,980 కేవలం ఒక ఫంక్షన్ దాని ఇన్పుట్ వంటి పెట్టుబడి. 752 00:33:16,980 --> 00:33:20,240 t బ్రాకెట్ సున్నా ఇవ్వడానికి అర్థం నాకు t యొక్క సున్నా పాత్ర. 753 00:33:20,240 --> 00:33:22,550 కాబట్టి ఎలా ఈ చేస్తుంది చిత్రాన్ని మార్పు స్పష్టంగా ఉండాలి? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 ఏం తిరగరాశాడు లేదా మార్చుకోమని అవసరం లు గౌరవం మరియు t మరియు mom తో 756 00:33:29,160 --> 00:33:30,097 బాక్ స్లాష్ సున్నా. 757 00:33:30,097 --> 00:33:31,470 >> ప్రేక్షకులు: [వినబడని] 758 00:33:31,470 --> 00:33:34,030 >> డేవిడ్ J. మలన్: అవును, కాబట్టి ఈ ఒక ఇక్కడ కేవలం 759 00:33:34,030 --> 00:33:40,860 దీన్ని పరిష్కరించడానికి ఆలోచన మార్చుకోమని కావాలి ఒక రాజధాని m మార్చారు చేసుకోగా అవసరం. 760 00:33:40,860 --> 00:33:44,330 కానీ ఇప్పుడు, లో తర్వాత చూడండి ప్రోగ్రామ్ నేను ప్రింట్ ఉంటే 761 00:33:44,330 --> 00:33:49,800 నేను ఇక్కడ శుభ్రం గా s మరియు t, ఏమిటి చూడటానికి s మరియు t ముద్రించి జరిగే. 762 00:33:49,800 --> 00:33:54,310 కాబట్టి కాపీని -0, ./copy-0 చేస్తాయి. 763 00:33:54,310 --> 00:33:57,140 నాకు ముందుకు వెళ్లి టైప్ లెట్ అన్ని చిన్న లో తల్లి లో. 764 00:33:57,140 --> 00:34:00,140 గమనించండి అసలు మరియు రెండు కాపీని క్యాపిటల్స్ చేశారు. 765 00:34:00,140 --> 00:34:00,850 ఎందుకు? 766 00:34:00,850 --> 00:34:04,431 బాగా, s మరియు t రెండు సూచించే ఉంటాయి, మీరు రెడీ ఉంటే, మెమరీ అదే భాగం. 767 00:34:04,431 --> 00:34:06,930 మరియు స్పష్టముగా, ఈ పెరిగిపోతుంది నిజంగా నిజానికి uninteresting-- 768 00:34:06,930 --> 00:34:09,150 మేము ఇక్కడ చిరునామా సున్నా ఉపయోగించి చేస్తున్న. 769 00:34:09,150 --> 00:34:11,719 అంటే, నేను నిజంగా పట్టించుకోను పేరు stuff మెమరీలో ఉంది. 770 00:34:11,719 --> 00:34:13,550 క్షమించాలి నేను కొద్దిగా చాలా erasing చేస్తున్నాను. 771 00:34:13,550 --> 00:34:15,674 కానీ నేను నిజంగా పట్టించుకోను విషయాలు మెమరీ ఉన్నాయి. 772 00:34:15,674 --> 00:34:18,510 అందువలన, నిజానికి ఏమి ప్రోగ్రామర్లు గురించి అనుకుంటున్నాను ఉంటాయి 773 00:34:18,510 --> 00:34:21,080 మీరు మాట్లాడినప్పుడు ఉంది ఒక చిరునామా, లేదా ఒక పాయింటర్, 774 00:34:21,080 --> 00:34:22,679 అది మెమరీలో ఉన్న ఎవరు పట్టించుకుంటారు. 775 00:34:22,679 --> 00:34:24,989 అది వద్ద ఉంటే నేను పట్టించుకోను బైట్ ఒకటి లేదా ఒక బిలియన్. 776 00:34:24,989 --> 00:34:27,920 నేను ఈ పట్టించుకోను వేరియబుల్ సమర్థవంతంగా 777 00:34:27,920 --> 00:34:29,620 మెమరీ యొక్క భాగం వద్ద గురిపెట్టి. 778 00:34:29,620 --> 00:34:33,350 అందువలన, ఇకమీదట కాకుండా ఆక్షేపణ ఏకపక్ష మెమరీ చిరునామాలను పైగా, లెట్స్ 779 00:34:33,350 --> 00:34:36,710 కేవలం గమనికలు డ్రా ప్రారంభం బాణాలు వంటి గమనికలు, వంటి. 780 00:34:36,710 --> 00:34:39,340 సో మరియు t నిజంగా, ఏ S ఉన్నాయి ఈ కార్యక్రమం ప్రకారం, 781 00:34:39,340 --> 00:34:42,130 , నేను t రూపొందించినవారు ఎలా ఎందుకంటే ఇది కేవలం రెండు ప్రత్యేక వేరియబుల్స్ వార్తలు 782 00:34:42,130 --> 00:34:43,840 మెమరీ అదే భాగం వద్ద గురిపెట్టి. 783 00:34:43,840 --> 00:34:45,215 వారు ఎక్కడ మరియు మేము పట్టించుకోను. 784 00:34:45,215 --> 00:34:47,130 కాబట్టి మేము వియుక్త దూరంగా ఆ వివరాలు చెయ్యవచ్చు. 785 00:34:47,130 --> 00:34:48,780 >> కాబట్టి నేను ఈ పరిష్కరించాలి? 786 00:34:48,780 --> 00:34:54,120 నేను కాపీ యొక్క ఒక వెర్షన్ రాయడానికి మీరు అనుకుంటే కార్యక్రమం నిజానికి కాపీలు స్ట్రింగ్ 787 00:34:54,120 --> 00:34:56,840 మరియు మాత్రమే క్యాపిటల్ కాపీ, కేవలం intuitively, 788 00:34:56,840 --> 00:34:59,766 ఏమి సంపాదించి ఒక ఉండాలి మా పరిష్కారం పదార్థాలలో? 789 00:34:59,766 --> 00:35:00,640 ప్రేక్షకులు: [వినబడని] 790 00:35:00,640 --> 00:35:01,420 డేవిడ్ J. మలన్: మేము ఏమి చేయాలి? 791 00:35:01,420 --> 00:35:01,820 ప్రేక్షకులు: మెమరీ భాగం. 792 00:35:01,820 --> 00:35:03,280 డేవిడ్ J. మలన్: మేము అవసరం మెమరీ మరొక భాగం, కుడి? 793 00:35:03,280 --> 00:35:05,360 మేము తెలియదు ఎలా తప్పనిసరిగా, ఇంకా దీన్ని. 794 00:35:05,360 --> 00:35:11,330 కానీ నేను రకమైన జరిగే వరకు ఈ అవసరం ఆ తక్కువ కేసులో అసలు తల్లి 795 00:35:11,330 --> 00:35:14,170 మెమరీ ఆ అదనపు భాగం లో ముగుస్తుంది. 796 00:35:14,170 --> 00:35:19,770 ఆపై నేను కాపీ మారినప్పుడు, నేను ఇక్కడ ఈ కాపీని మార్చడానికి వద్దు. 797 00:35:19,770 --> 00:35:26,020 నేను బదులుగా మాత్రమే ఈ మార్చడానికి కావలసిన కాపీని తద్వారా అసలు మారదు. 798 00:35:26,020 --> 00:35:27,980 >> కాబట్టి, యొక్క మేము దీన్ని ఉండవచ్చు ఎలా చూద్దాం. 799 00:35:27,980 --> 00:35:31,800 నకలు-1, ఇప్పటికే కలిగి వ్యాఖ్య పగ్గాలు, 800 00:35:31,800 --> 00:35:33,250 కానీ ఆన్లైన్ వ్యాఖ్యానిస్తారు. 801 00:35:33,250 --> 00:35:36,710 మేము బదులుగా కింది ఈ చేయండి పంక్తులు సమానంగా ఉంటాయి, నాకు స్ట్రింగ్ పొందడానికి 802 00:35:36,710 --> 00:35:38,340 మరియు s కాల్. 803 00:35:38,340 --> 00:35:43,500 కానీ ఇప్పుడు యొక్క మా అత్యంత ఒకటి చూద్దాం క్లిష్టమైన కానీ సంక్లిష్టత గత 804 00:35:43,500 --> 00:35:47,340 అందాకా, లైన్ 16 సరిగ్గా ఈ చేస్తుంది. 805 00:35:47,340 --> 00:35:49,400 మీ comfy చేస్తే చిత్రాన్ని మేము కేవలం drew-- 806 00:35:49,400 --> 00:35:51,790 నన్ను మెమరీ కొత్త భాగం ఇవ్వాలని అది లోకి ప్రతిదీ కాపీ, 807 00:35:51,790 --> 00:35:53,730 యొక్క మేము కోడ్ అనువదిస్తుంది ఎలా చూద్దాం. 808 00:35:53,730 --> 00:35:59,400 >> కాబట్టి లైన్ 16, ఎడమ వైపు, చార్ * t ఇక్కడ పైగా నాకు ఈ బాక్స్ ఇస్తుంది. 809 00:35:59,400 --> 00:36:00,230 ఆ అది అంతే. 810 00:36:00,230 --> 00:36:03,240 కుడి వైపు, m alloc, లేదా malloc, 811 00:36:03,240 --> 00:36:06,480 సూపర్ ఫాన్సీ మెమరీ కేటాయింపు ఉంది కేవలం చెప్పడం ఒక నిగూఢ మార్గం 812 00:36:06,480 --> 00:36:07,640 నాకు మెమరీ భాగం ఇవ్వాలని. 813 00:36:07,640 --> 00:36:09,290 మేము ఎంత మెమరీ చేయాలి? 814 00:36:09,290 --> 00:36:10,910 Well, ఒక పెద్ద వ్యక్తీకరణ యొక్క రకం. 815 00:36:10,910 --> 00:36:12,570 కానీ యొక్క అది ఇక్కడ చెప్పే చూద్దాం. 816 00:36:12,570 --> 00:36:15,940 కాబట్టి ఈ, కోర్సు యొక్క, అందించగలరు నాకు స్ట్రింగ్ s యొక్క పొడవు. 817 00:36:15,940 --> 00:36:19,094 కాబట్టి, Mom ఉండాలి? 818 00:36:19,094 --> 00:36:21,010 కాబట్టి కేవలం మూడు, కుడి? తల్లి మూడు అక్షరాలు. 819 00:36:21,010 --> 00:36:22,830 మీరు లెక్కించబడవు బాక్ స్లాష్ సున్నా అయినపుడు 820 00:36:22,830 --> 00:36:25,960 అది ఒక స్ట్రింగ్ యొక్క పొడవు గురించి మాట్లాడటానికి నిజానికి మానవ కనిపించదు అక్షరాలు. 821 00:36:25,960 --> 00:36:28,020 సో mom, కాబట్టి ఈ 3 నాకు ఇస్తుంది. 822 00:36:28,020 --> 00:36:31,170 కానీ నేను ఇప్పుడు 1 జోడించడం నేను, ఒక నిమిషం ఆగండి. 823 00:36:31,170 --> 00:36:34,861 ఎందుకు నేను నిజానికి అనుకుంటున్నారు 4 బైట్లు మరియు కేవలం 3 కేటాయించాలని? 824 00:36:34,861 --> 00:36:35,360 అవును? 825 00:36:35,360 --> 00:36:36,910 >> ప్రేక్షకులు: కాపలాదారుడు విలువ? 826 00:36:36,910 --> 00:36:38,951 >> డేవిడ్ J. మలన్: ఖచ్చితంగా ఆ కాపలాదారుడు విలువ. 827 00:36:38,951 --> 00:36:40,840 బాక్ స్లాష్ సున్నా కోసం, నేను 4 బైట్లు మొత్తం అవసరం. 828 00:36:40,840 --> 00:36:42,870 నేను పొడవు అవసరం స్ట్రింగ్ ప్లస్ 1. 829 00:36:42,870 --> 00:36:45,400 ఆపై కేవలం మంచి measure-- కోసం కూడా ఈ వ్యవస్థ మీద అయితే, 830 00:36:45,400 --> 00:36:49,390 ఇది ఎల్లప్పుడూ నేను చెప్పడం నేను 1 కలిగి చేస్తాడు ఒక చార్ యొక్క పరిమాణం ద్వారా ఈ గుణిస్తారు. 831 00:36:49,390 --> 00:36:51,552 Sizeof అవుతుంది సి ఒక ఆపరేటర్లు ఆ 832 00:36:51,552 --> 00:36:53,260 కేవలం మీరు చెబుతుంది ఆ బైట్లు సంఖ్య 833 00:36:53,260 --> 00:36:54,700 ఒక నిర్దిష్ట డేటా రకం అవసరం. 834 00:36:54,700 --> 00:36:57,740 ఇది శ్రేణుల కోసం పని లేదు, సాధారణంగా, కొన్నిసార్లు అది. 835 00:36:57,740 --> 00:36:59,210 కానీ సాధారణ సందర్భంలో, ఏ. 836 00:36:59,210 --> 00:37:02,330 అనేక ఒక బైట్లు ఎలా కానీ అది చెప్పు హాజరవుతారు ఇది చార్, ఎల్లప్పుడూ 1 ఉంది. 837 00:37:02,330 --> 00:37:04,080 ఈ 1 గుణించడం వంటి ఉంది. 838 00:37:04,080 --> 00:37:05,900 >> కోడ్ యొక్క కాబట్టి సూపర్ గుప్తమైన చూస్తున్న లైన్. 839 00:37:05,900 --> 00:37:09,320 కానీ అది అన్ని ఇస్తుంది నాకు మెమరీ భాగం. 840 00:37:09,320 --> 00:37:13,590 కానీ అది కాపీ చేయడానికి అనిపించడం లేదు మెమరీ లోకి ఏదైనా? 841 00:37:13,590 --> 00:37:14,560 ఇంకా లేదు. 842 00:37:14,560 --> 00:37:22,040 కాబట్టి లైన్ 22 న నేను ఏమి, మరియు 23, 24, 25, బాగా, నేను కేవలం దీన్ని. 843 00:37:22,040 --> 00:37:23,760 మరియు ఈ విధమైన ఉంది ఇప్పుడు పాత పాఠశాల stuff. 844 00:37:23,760 --> 00:37:26,010 ఈ pset 2, ఎక్కడ వంటిది మీరు విషయాలు కదిలే చేస్తున్నారు 845 00:37:26,010 --> 00:37:28,620 చుట్టూ మెమరీ లో, లేదా బదులుగా తీగలను లో. 846 00:37:28,620 --> 00:37:31,920 >> నేను 0 నుండి iterating ఉన్నాను స్ట్రింగ్ s యొక్క పొడవు. 847 00:37:31,920 --> 00:37:37,820 నేను i-th పాత్ర అనుకరించటం చేస్తున్నాను t లో i-th పాత్ర లోకి s లో. 848 00:37:37,820 --> 00:37:41,820 మరియు నేను ఎందుకంటే, ప్రోగ్రామర్, చేసిన సరిగ్గా అనేక బైట్లు కేటాయించాలని ఖచ్చితంగా 849 00:37:41,820 --> 00:37:44,600 నేను అవసరం, అది పరిపూర్ణమైనది ఒకటి నుండి ఒకరికి సంబంధం. 850 00:37:44,600 --> 00:37:47,060 అండ్ ఐ Mom కాపీ క్రొత్త చిన్నబడి. 851 00:37:47,060 --> 00:37:50,170 మరియు తర్వాత చివరగా, నేను ఈ లైన్. 852 00:37:50,170 --> 00:37:54,637 కాబట్టి ప్రభావం మాత్రమే ఉంది ఇక్కడ ఈ t చూపడంలో. 853 00:37:54,637 --> 00:37:56,470 కాబట్టి చాలా గ్రహించడం, కానీ మీరు కేవలం పరిగణలోకి 854 00:37:56,470 --> 00:37:58,220 నిజంగా ఏమి జరగబోతోంది హుడ్ కింద 855 00:37:58,220 --> 00:38:00,880 కేవలం ఈ కదులుతున్న అన్ని ఆ, చుట్టూ బైట్లు 856 00:38:00,880 --> 00:38:06,617 ఈ సమస్య పరిష్కారానికి అవసరమైన కేవలం మాకు మెమరీ ఈ భాగం ఇవ్వాలని. 857 00:38:06,617 --> 00:38:08,450 ఇప్పుడు ప్రమాదం అధిక, నాకు తెలియజేయండి 858 00:38:08,450 --> 00:38:13,200 దాదాపు ఆ మరొక ఉదాహరణ ఈ ఒకదానికి మినహా ఒకేలా 859 00:38:13,200 --> 00:38:14,350 కోడ్ లైన్. 860 00:38:14,350 --> 00:38:18,870 కాబట్టి ఈ హ్యాకర్ వెర్షన్ ఈ కార్యక్రమం, మీరు రెడీ ఉంటే. 861 00:38:18,870 --> 00:38:21,050 కానీ యొక్క కేవలం పరిశుద్ధం వీలు అది జరగబోతోంది ఏమి లోకి. 862 00:38:21,050 --> 00:38:28,920 లైన్ 24 ఈ t ఉపయోగపడేది బ్రాకెట్ నేను s బ్రాకెట్ i పొందుతాడు. 863 00:38:28,920 --> 00:38:33,370 ఇప్పుడు, నేను ఈ మారుతున్న చేస్తున్నాను మరింత గుప్తమైన స్టార్ t 864 00:38:33,370 --> 00:38:36,280 ప్లస్ 1 స్టార్ లు ప్లస్ 1 సమానం. 865 00:38:36,280 --> 00:38:38,702 >> కాబట్టి ఏం ఎందుకు మేము ఒక స్టార్ పాత్ర కలిగి ఉంటాయి? 866 00:38:38,702 --> 00:38:41,410 మేము ముందు స్టార్ చూసిన చేసిన, మరియు ఇది భిన్నంగా ఇక్కడ ఉపయోగిస్తారు చేయబడిన. 867 00:38:41,410 --> 00:38:45,490 మేము గతంలో ఇప్పుడు నేను చూసిన వెబ్, చార్ * చూసింది ఒక ప్రారంభంలో స్టార్, మరియు ఆ సరే. 868 00:38:45,490 --> 00:38:48,190 అది మేము అవుతుంది ఎందుకంటే రకమైన కేవలం ప్రతిపాదించే చేయవచ్చు 869 00:38:48,190 --> 00:38:50,280 ఆ మొదటి నుండి సిద్ధాంతాలపై జరగబోతోంది. 870 00:38:50,280 --> 00:38:53,860 కాబట్టి కేవలం స్పష్టతను, s ఏమిటి? 871 00:38:53,860 --> 00:38:55,052 గత వారం, అది స్ట్రింగ్ ఉంది. 872 00:38:55,052 --> 00:38:56,260 ఇకపై తగినంత లేదు. 873 00:38:56,260 --> 00:38:57,690 ప్రత్యేకంగా, s ఏమిటి? 874 00:38:57,690 --> 00:38:58,590 >> ప్రేక్షకులు: [వినబడని] 875 00:38:58,590 --> 00:38:59,881 >> డేవిడ్ J. మలన్: ఇది ఒక పాయింటర్ ఉంది. 876 00:38:59,881 --> 00:39:02,610 ఇది యొక్క చిరునామా మొదటి పాత్ర మనం టైప్. 877 00:39:02,610 --> 00:39:04,780 సరే, t ఏమిటి? 878 00:39:04,780 --> 00:39:05,660 >> ప్రేక్షకులు: [వినబడని] 879 00:39:05,660 --> 00:39:07,950 >> డేవిడ్ J. మలన్: మొదటి బైట్ యొక్క చిరునామా 880 00:39:07,950 --> 00:39:10,490 t లో, ఆ భాగం మెమరీ పంపిణీ. 881 00:39:10,490 --> 00:39:14,720 కాబట్టి ఆ బయటకు వస్తాడు మేము స్ట్రింగ్ న 0 నుండి iterate 882 00:39:14,720 --> 00:39:17,424 పొడవు మొదటి అన్ని యొక్క, నేను ఎందుకంటే, 0 వద్ద మొదలవుతుంది 883 00:39:17,424 --> 00:39:18,840 లూప్ విషయం ఈ పాత పాఠశాల. 884 00:39:18,840 --> 00:39:22,400 కాబట్టి కేవలం సరళత కోసం, లెట్స్ కోడ్ యొక్క మొదటి లైన్ ఊహించుకోవటం 885 00:39:22,400 --> 00:39:23,760 నిజంగా కేవలం ఈ హక్కు. 886 00:39:23,760 --> 00:39:26,080 నేను సున్నా జోడించడం సున్నా అయితే ఏదో బహుశా 887 00:39:26,080 --> 00:39:27,540 అది ప్రభావం చూపడానికి వెళ్ళడం లేదు. 888 00:39:27,540 --> 00:39:28,560 >> కాబట్టి ఈ నానుడి ఏమిటి? 889 00:39:28,560 --> 00:39:31,600 ఇది స్టార్ హాజరవుతారు ఈ సందర్భంలో ఆపరేటర్లు 890 00:39:31,600 --> 00:39:33,700 dereference ఉంది కేవలం ఇది ఆపరేటర్లు, 891 00:39:33,700 --> 00:39:37,530 వెళ్ళి చెప్పడం ఒక ఫాన్సీ మార్గం క్రింది చిరునామాకు. 892 00:39:37,530 --> 00:39:42,080 కాబట్టి s ఉంటే మొదటి యొక్క చిరునామా మెమరీ ఈ భాగం లో పాత్ర, 893 00:39:42,080 --> 00:39:43,630 * S అంటే అక్కడ వెళ్ళండి. 894 00:39:43,630 --> 00:39:45,630 మరియు మేము డ్రా చేసిన ఎందుకంటే ఈ విధంగా చిత్రాన్ని, 895 00:39:45,630 --> 00:39:47,430 మీరు పాటించేలా చేయవచ్చు మానసిక మోడల్ క్రింది. 896 00:39:47,430 --> 00:39:51,030 ఈ లు, మరియు మీరు * s, * s చెప్పుకోవాలంటే రకమైన చూట్స్ మరియు నిచ్చెనల వంటి, 897 00:39:51,030 --> 00:39:54,540 మీరు చిన్ననాటి నుండి గుర్తు ఉంటే, ఆ బాణం అనుసరించండి మరియు వంటిది 898 00:39:54,540 --> 00:39:55,570 చిరునామాకు. 899 00:39:55,570 --> 00:39:57,080 >> * t అదే విషయం. 900 00:39:57,080 --> 00:39:59,855 కాబట్టి ఇక్కడ ప్రారంభించండి, దాని భాగం వెళ్ళండి. 901 00:39:59,855 --> 00:40:03,350 నేను న డ్రా కాదు ఈ తెర విధంగా. 902 00:40:03,350 --> 00:40:05,560 * t ఇక్కడ వెళ్ళడానికి అర్థం. 903 00:40:05,560 --> 00:40:08,830 ఆపై, లూప్ కేవలం ఇక్కడ ఈ పాత్ర తరలించడానికి మాట్లాడుతూ 904 00:40:08,830 --> 00:40:11,330 ఇక్కడ ఈ పాత్ర తరలించడానికి, ఇక్కడ ఈ పాత్ర తరలించడానికి. 905 00:40:11,330 --> 00:40:12,890 కానీ ఎలా నేను incrementation చేస్తారు? 906 00:40:12,890 --> 00:40:15,430 నేను కేవలం తొలగించారు ఏమి దిద్దుబాటు రద్దుచెయ్యి అవసరం. 907 00:40:15,430 --> 00:40:18,140 ఈ సాధారణంగా అని ఏమిటి అంక గణితానికి ఇది 908 00:40:18,140 --> 00:40:20,040 చిరునామాలతో గణిత అర్థం. 909 00:40:20,040 --> 00:40:22,460 >> లేకపోతే, ఈ లూప్, నేను పెంచడం ఉంచడానికి 910 00:40:22,460 --> 00:40:26,880 మరియు s ఒక చిరునామా మరియు t ఒక ఉంది చిరునామా, నేను కేవలం 1 జోడించడం ఉంచుకుంటే, 911 00:40:26,880 --> 00:40:31,406 కేవలం ముందుకు కదిలే ఉంచేందుకు అర్థం, మరియు ముందుకు, మరియు మెమరీలో ముందుకు. 912 00:40:31,406 --> 00:40:34,030 ఇది ఆక్స్ఫోర్డ్ స్ట్రీట్ వంటిది, CS భవనం అని వీధి. 913 00:40:34,030 --> 00:40:36,490 CS భవనాలు 33 ఆక్స్ఫోర్డ్ స్ట్రీట్ వద్ద ఉంది. 914 00:40:36,490 --> 00:40:39,870 కాబట్టి మీరు 33 ఏమి ఉన్నాయి ఆక్స్ఫోర్డ్ స్ట్రీట్ ప్లస్ 1, 915 00:40:39,870 --> 00:40:42,870 34 ఆక్స్ఫర్డ్ మిమ్మల్ని తెస్తుంది స్ట్రీట్, తరువాత 35 ఆక్స్ఫోర్డ్ స్ట్రీట్, 916 00:40:42,870 --> 00:40:46,380 అప్పుడు 36 ఆక్స్ఫోర్డ్ స్ట్రీట్, సంసార ఆ భవనాలు ఉన్నాయి - వారు ఉనికిలో ఉంటే. 917 00:40:46,380 --> 00:40:50,540 కాబట్టి, ఆ మేము చేస్తున్న అన్ని వార్తలు ఇక్కడ అంక గణితానికి తో. 918 00:40:50,540 --> 00:40:53,820 >> కనుక ఇది ఒక సూపర్ రహస్య మార్గం యొక్క మేమే వ్యక్తపరిచే. 919 00:40:53,820 --> 00:40:56,160 కానీ అన్ని జరుగుతున్నది ఆ హుడ్ కింద 920 00:40:56,160 --> 00:40:59,330 కేవలం ఈ చిరునామాలకు అనుసరిస్తున్నారు, ఒక చిహ్నం క్రింది వంటి, మీరు రెడీ ఉంటే, 921 00:40:59,330 --> 00:41:02,692 లేదా వంటి బాణాలు తరువాత మేము తెరపై డ్రా చేసిన. 922 00:41:02,692 --> 00:41:04,910 సరే, చాలా జీర్ణమై. 923 00:41:04,910 --> 00:41:10,410 వాక్యనిర్మాణం ఏ ప్రశ్న, భావనలు గమనికలు, malloc, లేదా ఇష్టపడుతున్నారు. 924 00:41:10,410 --> 00:41:11,480 అవును, ఇక్కడ పైగా మొదటి. 925 00:41:11,480 --> 00:41:13,755 >> ప్రేక్షకులు: సో ఆ , * t toupper * t సమానం చెప్పారు 926 00:41:13,755 --> 00:41:15,575 పెట్టుబడిగా వెళుతున్నాను అని అన్ని అక్షరాలు లేదా కేవలం 927 00:41:15,575 --> 00:41:17,283 >> డేవిడ్ J. మలన్: Ah, నిజంగా మంచి ప్రశ్న. 928 00:41:17,283 --> 00:41:19,805 ఇక్కడ ఈ లైన్ లో, 31, ఈ చూపడంలో అన్నారు 929 00:41:19,805 --> 00:41:21,430 మొదటి అక్షరం లేదా అక్షరాల యొక్క అన్ని. 930 00:41:21,430 --> 00:41:23,460 కాబట్టి యొక్క వెళ్ళడం ద్వారా ఆ సమాధానం తెలియజేయండి తిరిగి మొదటి సూత్రాలను. 931 00:41:23,460 --> 00:41:26,168 మరియు ఇక్కడ మొదటి సూత్రాలు నా ఉద్దేశ్యం కేవలం ప్రాథమిక నిర్వచనాలు వెళ్ళండి 932 00:41:26,168 --> 00:41:27,000 ప్రమేయం ఏమి యొక్క. 933 00:41:27,000 --> 00:41:29,770 కాబట్టి toupper ఒక ఫంక్షన్ ఒక చార్ క్యాపిటల్. 934 00:41:29,770 --> 00:41:30,530 అంతే. 935 00:41:30,530 --> 00:41:36,740 * t మొదటి చూసేలా వెళ్ళండి అర్థం t లో చిరునామా వెళ్ళండి. 936 00:41:36,740 --> 00:41:40,350 కాబట్టి, చిత్రాన్ని, ఈ భాగం ఉంది మెమరీ మేము malloc తో కేటాయించింది, 937 00:41:40,350 --> 00:41:43,310 మరియు ఈ T * t అంటే ఇక్కడకి, ఉంది. 938 00:41:43,310 --> 00:41:46,710 >> ఇంతలో, మీరు ఒక ప్రయాణిస్తున్న చేస్తున్నారు ఆ విలువ, చిన్న m 939 00:41:46,710 --> 00:41:50,040 toupper, మీరు తిరిగి పొందడానికి రాజధాని M, మీరు ఎక్కడ అది పెట్టటం ఉంటాయి? 940 00:41:50,040 --> 00:41:52,410 మీరు అదే స్థానం లో ఉంచడం చేస్తున్నారు. 941 00:41:52,410 --> 00:41:55,540 కాబట్టి ఆ తర్కం ద్వారా ప్రాథమిక నిర్వచనాలు మాత్రమే ఇది 942 00:41:55,540 --> 00:41:58,792 మొదటి అక్షరం క్యాపిటల్స్ మీరు i లేదా ఒక తో iterate తప్ప 943 00:41:58,792 --> 00:42:02,000 లూప్ లేదా కొంత లూప్, అది మాత్రం కాదు మీరు అడగండి కంటే ఎక్కువ ఏదైనా చేయాలని. 944 00:42:02,000 --> 00:42:02,583 మంచి ప్రశ్న. 945 00:42:02,583 --> 00:42:03,237 అవును? 946 00:42:03,237 --> 00:42:05,369 >> ప్రేక్షకులు: ఎందుకు మీరు వుపయోగించాలని పద్ధతి కాకుండా dereference 947 00:42:05,369 --> 00:42:05,979 అర్రే? 948 00:42:05,979 --> 00:42:07,395 >> డేవిడ్ J. మలన్: Ah, మంచి ప్రశ్న. 949 00:42:07,395 --> 00:42:10,672 ఎందుకు మీరు dereference వుపయోగించాలి బదులుగా శ్రేణి పద్ధతి యొక్క పద్ధతి? 950 00:42:10,672 --> 00:42:12,130 ఎటువంటి కారణం, నిజాయితీ ఉండాలి. 951 00:42:12,130 --> 00:42:15,290 మరియు, నిజానికి, ఈ కోసం ఉదాహరణకు రకం, కుడి, 952 00:42:15,290 --> 00:42:17,556 నేను కేవలం మేకింగ్ వాదిస్తూ వెబ్ మరింత క్లిష్టమైన కార్యక్రమం, 953 00:42:17,556 --> 00:42:19,680 మరింత కళ్లు, పైగా దిద్దక ఉంటాయి ప్రజలు తనిఖీ చేస్తారు 954 00:42:19,680 --> 00:42:22,830 ఈ సూపర్ మర్మమైన కనిపిస్తోంది ఎందుకంటే కూడా అదే విషయం ఏమి అయితే. 955 00:42:22,830 --> 00:42:26,695 కాబట్టి, స్పష్టముగా, ఈ ఒక అనవసరంగా దృశ్య క్లిష్టమైన పరిష్కారం 956 00:42:26,695 --> 00:42:27,320 సమస్యకు. 957 00:42:27,320 --> 00:42:29,580 >> ఇది ఇప్పటికీ మంచి డిజైన్ ఐదు డిజైన్ కోసం ఐదు నుండి, 958 00:42:29,580 --> 00:42:33,140 ఇది బ్రాకెట్ లో అయినా సంజ్ఞామానం లేదా పాయింటర్ నొటేషన్. 959 00:42:33,140 --> 00:42:36,299 మేము పొందుటకు ముఖ్యంగా కానీ ఆ తరువాత కోర్సు లో pset 5 లో 960 00:42:36,299 --> 00:42:39,340 మేము నిఘంటువులో అమలు చేసినప్పుడు ఆ నేను సార్లు పునరావృతం జంట పేర్కొన్నారు చేసిన 961 00:42:39,340 --> 00:42:42,300 మేము నిజానికి పట్టించుకోనట్లు చేస్తాము తక్కువ స్థాయి మెమరీ చిరునామాలను 962 00:42:42,300 --> 00:42:44,140 మేము నిజంగా అర్థం ఆ ఏం జరుగుతోంది. 963 00:42:44,140 --> 00:42:48,300 >> కానీ, ఇప్పుడు కోసం, ఈ హాజరవుతారు కోడ్ ఇక్కడ చదరపు బ్రాకెట్లలో లైన్ 964 00:42:48,300 --> 00:42:49,900 నిజంగా ఉనికిలో లేదు. 965 00:42:49,900 --> 00:42:52,230 వారు అని ఏమి ఉన్నాయి వాక్యనిర్మాణ చక్కెర, ఇది 966 00:42:52,230 --> 00:42:58,390 చెప్పడం కేవలం ఒక weirdly చల్లని మార్గం కంపైలర్ చదరపు బ్రాకెట్లలో ఉండాలి మారుస్తుంది 967 00:42:58,390 --> 00:43:00,420 గణిత వ్యక్తీకరణ. 968 00:43:00,420 --> 00:43:02,660 కనుక ఇది ఒక మానవ కన్వెన్షన్ వార్తలు కేవలం రాయడానికి చేయగలరు 969 00:43:02,660 --> 00:43:04,220 ఈ చాలా యూజర్ ఫ్రెండ్లీ బ్రాకెట్లలో. 970 00:43:04,220 --> 00:43:06,850 కానీ కంపైలర్, గణగణమని ద్వని చేయు, నిజంగా ఏ సమయంలో చేస్తోంది 971 00:43:06,850 --> 00:43:10,970 మీరు లైన్ లో హైలైట్ లో ఏమి రాయడానికి 24, హుడ్ కింద అది నిజంగా 972 00:43:10,970 --> 00:43:12,330 ఈ మారుస్తారు. 973 00:43:12,330 --> 00:43:16,200 ఇది ఒక మానవ అంతే మరింత ఆహ్లాదకరమైన వార్తలు చదివి లైన్ 24 వంటి కోడ్ రాయడానికి. 974 00:43:16,200 --> 00:43:18,530 కానీ చివరికి ఆ శిక్షణ చక్రాలు చాలా జరుగుట 975 00:43:18,530 --> 00:43:21,780 ఒకరి స్వంత సౌకర్యం బలమైన గెట్స్ ఉన్నప్పుడు. 976 00:43:21,780 --> 00:43:27,240 >> All right, కాబట్టి ఆ ఈ గుర్తు అతిపెద్ద సమస్య యొక్క విధమైన ఉంది 977 00:43:27,240 --> 00:43:27,807 మేము కూరుకుపోయింది. 978 00:43:27,807 --> 00:43:30,640 మరియు ఆ, ఈ మొత్తం లేవనెత్తింది ఏమిటి గమనికలు గురించి తిట్టు సంభాషణ, 979 00:43:30,640 --> 00:43:32,340 మరియు చిరునామాలు, మరియు కాపీ విషయాలు. 980 00:43:32,340 --> 00:43:35,410 మేము జారారు ఎందుకంటే ఇది ఉంది ఈ స్టుపిడ్, తెలివితక్కువదని సమస్య, అనగా 981 00:43:35,410 --> 00:43:38,830 నేను లారెన్ తో logically-- అమలు ఇక్కడ డెమో మరియు నారింజ రసం లో 982 00:43:38,830 --> 00:43:43,770 milk-- లో ఒక సంపూర్ణ సమస్య పరిష్కారానికి ఉపయోగించే సరైన ఫంక్షన్ 983 00:43:43,770 --> 00:43:47,010 రెండు వేరియబుల్స్ 'ఇచ్చిపుచ్చుకోవడం కోసం విలువలు, కానీ తిట్టు విషయం 984 00:43:47,010 --> 00:43:50,550 ఏ నిరంతర కలిగి, లేదా లేదు నా కోడ్ శాశ్వత ప్రభావం. 985 00:43:50,550 --> 00:43:51,820 >> ఎందుకు ఉంది? 986 00:43:51,820 --> 00:43:54,650 క్లుప్తంగా, ఎందుకు ఈ ఉంది స్వాప్ అమలు 987 00:43:54,650 --> 00:43:58,740 తార్కికంగా సరైన, కానీ ఎలాంటి ప్రభావం ఉంది దానికి జారీ ఆ అంశాలపై, 988 00:43:58,740 --> 00:44:01,119 ప్రధాన x మరియు y వంటి? 989 00:44:01,119 --> 00:44:02,410 సమస్య యొక్క సారాంశం ఏమిటి? 990 00:44:02,410 --> 00:44:02,909 అవును? 991 00:44:02,909 --> 00:44:05,532 ప్రేక్షకులు: వేరియబుల్ చేసిన కారణంగా పాస్ లో వేరియబుల్ యొక్క కాపీలు 992 00:44:05,532 --> 00:44:06,240 ఫంక్షన్ ద్వారా. 993 00:44:06,240 --> 00:44:09,060 >> డేవిడ్ J. మలన్: ఖచ్చితంగా, మీరు అది పాస్ ఒక ఫంక్షన్ వేరియబుల్స్, లేదా వాదనలు 994 00:44:09,060 --> 00:44:11,030 ఒక ఫంక్షన్ లో, వారు కాపీని ద్వారా యిచ్చిన 995 00:44:11,030 --> 00:44:14,770 మీరు చూస్తున్న ఒక ఏకరూప పొందండి అర్థం x మరియు y రెండు కోసం బిట్స్ నమూనా, 996 00:44:14,770 --> 00:44:15,955 a మరియు b ఇక్కడ అని. 997 00:44:15,955 --> 00:44:18,080 మరియు మీరు ఏదైనా చేయవచ్చు మీరు ఆ కాపీలు కావలసిన 998 00:44:18,080 --> 00:44:20,657 కానీ వారు ఏ చూడాలని కాలింగ్ ఫంక్షన్ ప్రభావితం. 999 00:44:20,657 --> 00:44:22,990 మరియు, నిజానికి, మేము ఆ ఆకర్షించింది స్క్రీన్, రీకాల్ న చిత్రాన్ని 1000 00:44:22,990 --> 00:44:25,520 చివరిసారి, అనగా మీరు ఉంటే నిజంగా ఏమి గురించి ఆలోచించడం 1001 00:44:25,520 --> 00:44:28,570 ఉంటే hood-- కింద జరగబోతోంది ఈ మీ కంప్యూటర్ యొక్క మెమరీ ఉంది 1002 00:44:28,570 --> 00:44:31,650 మరియు ఇక్కడ డౌన్ యొక్క భాగం ఉంది జ్ఞాపకశక్తి, ప్రధాన కొరకు వాడబడుతుంది 1003 00:44:31,650 --> 00:44:34,020 ఈ భాగం ఉంది జ్ఞాపకశక్తి, స్వాప్ కొరకు వాడబడుతుంది 1004 00:44:34,020 --> 00:44:37,090 అందువలన కూడా ప్రధాన ఉంది రెండు వేరియబుల్స్ x మరియు y, 1005 00:44:37,090 --> 00:44:41,840 స్వాప్ ఒకేలా చూడటం ఉండవచ్చు 1 మరియు 2 రెండూ విలువలు 1006 00:44:41,840 --> 00:44:44,520 కానీ వారు పూర్తిగా ఉన్నాము మెమరీ వివిధ భాగాలుగా. 1007 00:44:44,520 --> 00:44:46,130 >> కాబట్టి మేము ఈ ఒక పరిష్కారం అవసరం. 1008 00:44:46,130 --> 00:44:51,580 మరియు స్పష్టముగా, అది ఇప్పుడు మేము ఆ అగుపిస్తుంది కుడి, ఈ సమస్యకు ఒక పరిష్కారం కలిగి. 1009 00:44:51,580 --> 00:44:55,760 మేము ఇప్పుడు సామర్థ్యం కలిగి ఉంటే చిరునామాల ద్వారా విషయాలు సర్దుబాటు 1010 00:44:55,760 --> 00:44:59,310 మరియు విధమైన చూట్స్ మరియు నిచ్చెనల శైలి, ఈ బాణాలు అనుసరించండి 1011 00:44:59,310 --> 00:45:02,820 మరియు మేము మీరు ఎక్కడైనా వెళ్లి మెమరీ లో, మేము చేయలేని 1012 00:45:02,820 --> 00:45:06,220 ద్వారా ఈ సమస్య పరిష్కారం ప్రధాన నుండి ప్రయాణిస్తున్న మారడానికి 1013 00:45:06,220 --> 00:45:09,650 కాదు విలువలు మేము కావలసిన స్వాప్, కానీ కేవలం intuitively 1014 00:45:09,650 --> 00:45:11,630 మనం దానికి బదులుగా మారడానికి మోపుతారు? 1015 00:45:11,630 --> 00:45:12,620 >> [వాయిసెస్ INTERPOSING] 1016 00:45:12,620 --> 00:45:15,244 >> డేవిడ్ J. మలన్: ఎందుకు మేము కేవలం లేదు కుడి, చిరునామాలు పాస్? 1017 00:45:15,244 --> 00:45:17,470 ఎందుకు మేము స్వాప్ ఇవ్వాలని లేదు నిధి మ్యాప్, మీరు రెడీ ఉంటే, 1018 00:45:17,470 --> 00:45:20,950 ఆ దానిని దారితీస్తుంది అసలైన విలువలు x మరియు y. 1019 00:45:20,950 --> 00:45:24,340 లెట్ యొక్క స్వాప్, నిజానికి మార్చడానికి ఆ అసలు బిట్స్ కాకుండా 1020 00:45:24,340 --> 00:45:26,797 కేవలం బిట్స్ కాపీలు ప్రయాణిస్తున్న. 1021 00:45:26,797 --> 00:45:29,130 అందువలన, నిజానికి, ఆ ఏముంది వార్తలు అన్నారు పరిష్కారం. 1022 00:45:29,130 --> 00:45:31,899 ఈ వెర్షన్ ఇక్కడ ఉంది స్పష్టంగా చెడు మరియు దోషపూరిత. 1023 00:45:31,899 --> 00:45:35,190 మరియు ఇప్పుడు, మొదటి చూపులో, అది కేవలం కనిపిస్తోంది వంటి మనం యాదృచ్చికంగా నక్షత్రాలు కొంత జోడించారు 1024 00:45:35,190 --> 00:45:37,106 మరియు మా వేళ్లు దాటింది అది కంపైల్ అని. 1025 00:45:37,106 --> 00:45:38,460 కానీ, అది ఇప్పుడు కంపైల్. 1026 00:45:38,460 --> 00:45:40,090 >> కానీ ఈ విషయాలు అర్థం ఏమి చూద్దాం. 1027 00:45:40,090 --> 00:45:43,990 మరియు, దురదృష్టవశాత్తు, రచయితలు సి మరొక చిహ్నం ఎంచుకున్న కాలేదు 1028 00:45:43,990 --> 00:45:46,380 ఈ ఒక చిన్న చేయడానికి స్వచ్చమైన, కానీ స్టార్ ఆపరేటర్లు 1029 00:45:46,380 --> 00:45:48,610 వివిధ అర్ధాన్ని కలిగి ఉంది రెండు వేర్వేరు సందర్భాలలో. 1030 00:45:48,610 --> 00:45:50,890 మరియు మేము రెండు చూసిన, కానీ యొక్క విభజన చేసుకుందాం. 1031 00:45:50,890 --> 00:45:55,310 >> , అక్కడ టాప్ వద్ద కనుక నేను ఒక అండ్ బి మార్చబడ్డాయి 1032 00:45:55,310 --> 00:46:00,470 చెడు లో Int యొక్క నుండి వెర్షన్ నక్షత్రాలు, a మరియు b, Int 1033 00:46:00,470 --> 00:46:01,740 గతంలో, పూర్ణ ఉన్నాయి. 1034 00:46:01,740 --> 00:46:05,752 ఇప్పుడు ఒక అండ్ బి ఏమిటి మంచి, ఆకుపచ్చ వెర్షన్? 1035 00:46:05,752 --> 00:46:06,900 వారు చిరునామాలు ఉన్నారు. 1036 00:46:06,900 --> 00:46:09,610 ఏమి చిరునామాలకు స్పష్టమైన ఉండాలి? 1037 00:46:09,610 --> 00:46:10,770 పూర్ణాంకాల చిరునామాలు. 1038 00:46:10,770 --> 00:46:12,520 నేను ఉన్నాను అని నిజానికి చాలా పూర్ణాంకానికి స్టార్ అంటే చెప్పడం 1039 00:46:12,520 --> 00:46:15,440 ఈ యొక్క చిరునామా పూర్ణాంకం, ప్రత్యేకంగా. 1040 00:46:15,440 --> 00:46:19,120 >> కాబట్టి ఇప్పుడు కోడ్ రేఖలు గమనించి, ఏదో చాలా మార్చబడింది. 1041 00:46:19,120 --> 00:46:22,770 tmp ఎందుకంటే, అదే ఉంటాయి అది కేవలం తాత్కాలిక పూర్ణాంక, 1042 00:46:22,770 --> 00:46:24,110 అక్కడ ఏ మెమరీ మేజిక్. 1043 00:46:24,110 --> 00:46:26,370 కానీ ఇప్పుడు ఒక స్టార్ అవసరం. 1044 00:46:26,370 --> 00:46:28,560 మరియు, నిజానికి, ప్రతి a మరియు b ఇతర ప్రస్తావించి 1045 00:46:28,560 --> 00:46:31,780 అన్ని గమనిస్తారు ఆకుపచ్చ ఎరుపు నుండి మారుతున్న 1046 00:46:31,780 --> 00:46:34,209 నేను ముందు చేస్తున్నాను అని నక్షత్రాలు తో ఆ వేరియబుల్స్. 1047 00:46:34,209 --> 00:46:35,750 నేను ఒక అండ్ బి కాపీ అనుకుంటున్నారా లేదు ఎందుకంటే. 1048 00:46:35,750 --> 00:46:40,350 ఎందుకంటే నేను కేవలం ఒక అండ్ బి మరియు స్వాప్ కాపీ ఉంటే a మరియు b, నేను నిజానికి ఏమి ఇచ్చిపుచ్చుకోవడంతో am? 1049 00:46:40,350 --> 00:46:43,760 జస్ట్ చిరునామాలు, నేను మారడానికి కావలసిన ఏమి ఆ చిరునామాలను వద్ద ఉంది. 1050 00:46:43,760 --> 00:46:44,860 నేను అక్కడ వెళ్లాలనుకుంటే. 1051 00:46:44,860 --> 00:46:48,000 అందువలన స్టార్ ఆపరేటర్లు నా ఫంక్షన్ యొక్క లోపల, 1052 00:46:48,000 --> 00:46:51,700 లేదు పారామితి జాబితా లోపల, మీరు ఆ చిరునామాలు వెళ్ళండి అర్థం 1053 00:46:51,700 --> 00:46:54,490 మరియు నిజానికి ఆ విలువలు మార్చడానికి. 1054 00:46:54,490 --> 00:46:56,500 >> సో వాట్ చిత్రాన్ని చేస్తుంది ఇప్పుడు బదులుగా కనిపిస్తుంది. 1055 00:46:56,500 --> 00:47:03,250 Well, బదులుగా ఉంటే నేను ప్రయాణిస్తున్న నేను ఒక కోసం మరియు కాదు 1 మరియు B 2-- 1056 00:47:03,250 --> 00:47:05,790 నేను నిజానికి జోడించడానికి అవసరం ఇక్కడ మరొక నిర్వచనం. 1057 00:47:05,790 --> 00:47:09,030 కాబట్టి ఈ భాగం ఊహించు మెమరీ స్థానాన్ని 10 వద్ద ఉంది. 1058 00:47:09,030 --> 00:47:12,960 >> ఈ స్థానం 11 వద్ద ఉంది, కానీ ఈ ఒక సాధారణీకరణ ఒక బిట్, 1059 00:47:12,960 --> 00:47:18,900 నేను ఇప్పుడు x రెండు ఎంపికలు నేను పాస్ చేయండి మరియు y లేదా నేను వారి చిరునామాలు పాస్ చెయ్యాలి? 1060 00:47:18,900 --> 00:47:22,500 నేను వారి చిరునామాలు పాస్ ఉంటే ఈ వంటి, నేను 1061 00:47:22,500 --> 00:47:25,390 ఇప్పుడు అమలు చేయాలి ఆకుపచ్చ కోడ్ శాతం స్వాప్ 1062 00:47:25,390 --> 00:47:29,080 అది చూసినపుడు కాబట్టి ఒక మరియు అది బి, అది కేవలం ఒక అండ్ బి కాపీ లేదు చూస్తాడు 1063 00:47:29,080 --> 00:47:30,540 మరియు పాలు మరియు నారింజ రసం తరలించడానికి. 1064 00:47:30,540 --> 00:47:32,664 పాలు మరియు నారింజ రసం రూపకం ఇప్పుడు విచ్ఛిన్నం 1065 00:47:32,664 --> 00:47:35,060 ఎందుకంటే ఆ కప్పులు ఉన్నాయి ద్రవ మరియు కాని పటాల. 1066 00:47:35,060 --> 00:47:37,750 మేము బదులుగా వెళ్లాలి 10 మరియు మేము పరిష్కరించడానికి 1067 00:47:37,750 --> 00:47:42,420 11 పరిష్కరించడానికి వెళ్ళడానికి అవసరం, మరియు ఆ ఇచ్చిపుచ్చుకోవడంతో తర్కం నిర్వహించడానికి. 1068 00:47:42,420 --> 00:47:45,580 >> కాబట్టి తర్కం అదే కానీ మేము కొంచెం మార్గం అవసరం 1069 00:47:45,580 --> 00:47:47,160 ఆ వేరియబుల్స్ యాక్సెస్. 1070 00:47:47,160 --> 00:47:52,400 కాబట్టి చివరికి ఏమి కార్యక్రమం ఈ లాగా ఉంది. 1071 00:47:52,400 --> 00:47:56,610 Swap.c అక్షరాలా అనుకరించారని మరియు ఆకుపచ్చ వెర్షన్ అతికించారు. 1072 00:47:56,610 --> 00:47:58,450 కానీ నేను ఒక మార్పు అవసరం. 1073 00:47:58,450 --> 00:48:00,180 ఇది కేవలం స్వాప్ మార్చడానికి తగినంత కాదు. 1074 00:48:00,180 --> 00:48:03,830 ఏం కోడ్ ఇతర లైన్ నేను మార్చడానికి అవసరం? 1075 00:48:03,830 --> 00:48:04,330 అవును? 1076 00:48:04,330 --> 00:48:05,770 >> ప్రేక్షకులు: ఇది వాదనలు పడుతుంది ఎక్కడ. 1077 00:48:05,770 --> 00:48:07,603 >> డేవిడ్ J. మలన్: ఎక్కడ దాని వాదన పడుతుంది. 1078 00:48:07,603 --> 00:48:09,985 నేను ప్రధాన వరకు స్క్రోల్ ఉంటే, నేను కేవలం x మరియు y లో పాస్ కాదు 1079 00:48:09,985 --> 00:48:12,820 మరియు, నేను గత వాగ్దానం కొత్త వాక్యనిర్మాణం యొక్క ముక్క నేడు. 1080 00:48:12,820 --> 00:48:17,200 నేను x లో పాస్ అవసరం మరియు y, x మరియు y యొక్క చిరునామా. 1081 00:48:17,200 --> 00:48:20,400 మరియు అది, చిహ్నం అవుతుంది సి రచయితలు యెంచుకొనిన 1082 00:48:20,400 --> 00:48:23,860 మీరు ఇక్కడ ఒక ఆంపర్సండ్ చిహ్నం ఉపయోగిస్తే లేదు, ఉంది bitwise ఆంపర్సండ్ చిహ్నం తో అయోమయం 1083 00:48:23,860 --> 00:48:27,130 మీరు ఒక ఆంపర్సండ్ చిహ్నం ఉపయోగిస్తే ఇక్కడ మరియు ఇక్కడ ఒక ఆంపర్సండ్ చిహ్నం, 1084 00:48:27,130 --> 00:48:29,570 ఈ మీరు కోసం వ్యక్తులుగా x యొక్క చిరునామా ఏమిటి, 1085 00:48:29,570 --> 00:48:31,740 దీనికి 10, ఏమిటి y యొక్క చిరునామా, దీనికి ఉంది 1086 00:48:31,740 --> 00:48:35,400 11, మరియు బదులుగా ఆ వెళుతుంది. 1087 00:48:35,400 --> 00:48:37,210 >> కాబట్టి చాలా ఒకేసారి అన్ని శోషించడానికి. 1088 00:48:37,210 --> 00:48:40,190 కానీ యొక్క త్వరగా చూద్దాము ఇప్పుడు మా మిగిలిన నాలుగు నిమిషాల 1089 00:48:40,190 --> 00:48:42,150 ఇక్కడ విషయాలు వంకరైన వెళ్ళే. 1090 00:48:42,150 --> 00:48:45,120 మరియు జనాంతికంగా, నిజానికి నేను ఈ చిత్రాన్ని పట్టింది, 1091 00:48:45,120 --> 00:48:46,920 TF ఒక సంవత్సరం లేదా రెండు క్రితం ఈ చిత్రాన్ని పట్టింది. 1092 00:48:46,920 --> 00:48:49,190 కాబట్టి ఈ తిరిగి మూలలో ఉంది ఇలియట్ డైనింగ్ హాల్. 1093 00:48:49,190 --> 00:48:52,310 గమనికలు బహుశా కష్టతరమైన మేము CS50 లో కవర్ ఆ విషయం. 1094 00:48:52,310 --> 00:48:54,810 మీరు విధమైన ఆందోళన చేస్తే దీనికి ఉంది వంటి వాలు ఉంది 1095 00:48:54,810 --> 00:48:56,770 ఒక హాకీ స్టిక్ మరింత ఈ వంటి, తెలుసుకోవటం 1096 00:48:56,770 --> 00:49:00,160 మేము రకమైన కొన దగ్గరపడింది చేస్తున్నారు సంభావిత సంక్లిష్టత పరంగా. 1097 00:49:00,160 --> 00:49:02,300 >> నేను ఈ తీసుకుని ఫోటో, నేను ప్రమాణం ఎందుకంటే 1098 00:49:02,300 --> 00:49:05,920 పతనం 1996 లో దేవుడు, ఎప్పుడు నేను పట్టింది నా టీచింగ్ తోటి CS50, 1099 00:49:05,920 --> 00:49:09,620 నిషాత్ మెహతా అతను నన్ను కూర్చుని ఓవర్ లంచ్ ఎలియట్ D. హాల్ మూలలో, 1100 00:49:09,620 --> 00:49:12,330 లేదా విందు, లేదా ఏదో ప్రయత్నించండి నాకు గమనికలు అర్థం సహాయం. 1101 00:49:12,330 --> 00:49:16,520 నేను వారాల తర్వాత అక్కడ ఈ ఉంది ఉపన్యాసంలో ఉన్నప్పుడు పరిచయం చేయబడింది 1102 00:49:16,520 --> 00:49:18,170 నేను చివరకు గమనికలు అర్థం. 1103 00:49:18,170 --> 00:49:20,590 మరియు నేను ఈ ఆశాభావం ఉన్నాను చాలా త్వరగా మీరు క్లిక్ కనిపిస్తుంది. 1104 00:49:20,590 --> 00:49:23,540 కానీ ఖచ్చితంగా మధ్య గ్రహించాను మరింత అధునాతన విషయాలు 1105 00:49:23,540 --> 00:49:24,420 మేము చూసాము చేసిన. 1106 00:49:24,420 --> 00:49:25,819 కానీ అది చాలా శక్తివంతమైన వాటిలో ఉంది. 1107 00:49:25,819 --> 00:49:28,860 మీరు పొందుటకు ఉన్నప్పుడు, అది నిజంగా అన్ని వార్తలు కేవలం చివరకు కలిసి వచ్చి వెళ్ళడం. 1108 00:49:28,860 --> 00:49:31,460 సో మిగిలిన అది కాదు హామీ నేడు అన్ని కాగా అవసరం. 1109 00:49:31,460 --> 00:49:32,980 >> సో ఇక్కడ గత కార్యక్రమం మేము చూడండి చూడాలని. 1110 00:49:32,980 --> 00:49:35,605 మరియు మేము ఒక తో వదులుకోవడానికి వెళుతున్న క్లేమాషన్గా సత్వర మూడు నిమిషాలు 1111 00:49:35,605 --> 00:49:37,030 మా స్నేహితుడు, నిక్ Parlante చేసిన. 1112 00:49:37,030 --> 00:49:41,440 ఇక్కడ ఒక కార్యక్రమం పైన రెండు ఆ, పంక్తులు ఒక వేరియబుల్ x మరియు y ప్రకటించాడు. 1113 00:49:41,440 --> 00:49:44,780 ఇవి రెండూ విలాసాలు పూర్ణాంకాల, AKA గమనికలు. 1114 00:49:44,780 --> 00:49:48,125 మేము అప్పుడు తగినంత కేటాయించాలని మెమరీ ఒక Int నిల్వ 1115 00:49:48,125 --> 00:49:51,344 మరియు చిరునామా నిల్వ x లో మెమరీ. 1116 00:49:51,344 --> 00:49:53,260 కాబట్టి, అది కూడా సరళంగా వార్తలు ముందు ఉదాహరణ కంటే. 1117 00:49:53,260 --> 00:49:56,100 నన్ను మెమరీ నాలుగు బైట్లు ఇవ్వండి ఒక పూర్ణాంకానికి యొక్క పరిమాణం, 1118 00:49:56,100 --> 00:49:58,000 మరియు x ఆ చిరునామా చాలు. 1119 00:49:58,000 --> 00:50:01,070 ఈ లైన్ ఇక్కడ అర్థం x లో చిరునామా వెళ్ళండి 1120 00:50:01,070 --> 00:50:05,270 మరియు అర్దానైనా జీవితం, అక్కడ సంఖ్య 42. 1121 00:50:05,270 --> 00:50:07,710 కానీ ఈ లైన్ నాకు ఆందోళనలతోపాటు. 1122 00:50:07,710 --> 00:50:12,620 Y y లో చిరునామా వెళ్ళండి స్టార్ అర్థం, మరియు అక్కడ దురదృష్ట సంఖ్య 13 చాలు. 1123 00:50:12,620 --> 00:50:15,780 ఎందుకు ఈ సమయంలో, అది ప్రమాదకరం story-- అయితే వేగంగా చెప్పారు 1124 00:50:15,780 --> 00:50:17,980 మా క్షీణిస్తుంది నిమిషాల్లో ఇక్కడ ఎందుకు అది చెడ్డ 1125 00:50:17,980 --> 00:50:19,660 నాకు సే y లో చిరునామా వెళ్ళండి? 1126 00:50:19,660 --> 00:50:21,077 >> ప్రేక్షకులు: మీరు లేదు [వినబడని]. 1127 00:50:21,077 --> 00:50:22,910 డేవిడ్ J. మలన్: నేను చెయ్యలేదు y ఏదైనా చాలు. 1128 00:50:22,910 --> 00:50:25,520 సో y యొక్క విలువ ఏమిటి, కథ ఈ సమయంలో? 1129 00:50:25,520 --> 00:50:26,570 మేము ఏ ఆలోచన ఉంది. 1130 00:50:26,570 --> 00:50:29,190 ఇది కొన్ని చెత్త విలువ మరియు లేదా Binky తెలుసు. 1131 00:50:29,190 --> 00:50:32,532 మేము ఈ సూచన అంతం కాలేదు. 1132 00:50:32,532 --> 00:50:34,832 >> [వీడియో ప్లేబ్యాక్] 1133 00:50:34,832 --> 00:50:36,500 >> -Hey, Binky, మేల్కొలపడానికి. 1134 00:50:36,500 --> 00:50:39,140 ఇది పాయింటర్ వినోదం కోసం సమయం. 1135 00:50:39,140 --> 00:50:40,210 >> ఆ -What వార్తలు? 1136 00:50:40,210 --> 00:50:41,690 గమనికలు గురించి తెలుసుకోండి? 1137 00:50:41,690 --> 00:50:43,570 ఓహ్, అమ్మ. 1138 00:50:43,570 --> 00:50:46,600 >> బాగా ప్రారంభించడానికి, నేను మేము ఉన్నాము అంచనా ఒక జంట గమనికలు అవసరం వెళుతున్న. 1139 00:50:46,600 --> 00:50:47,380 >> -అలాగే. 1140 00:50:47,380 --> 00:50:51,120 ఈ కోడ్ రెండు పాయింటర్లు కేటాయిస్తాడు ఇది పూర్ణాంకాల లను సూచిస్తుంది. 1141 00:50:51,120 --> 00:50:53,557 >> -OK, అలాగే నేను చూడండి రెండు పాయింటర్లు, కానీ వారు 1142 00:50:53,557 --> 00:50:55,140 ఏదైనా సూచించే అనిపించడం లేదు. 1143 00:50:55,140 --> 00:50:55,970 >> -ఆ సరియే. 1144 00:50:55,970 --> 00:50:58,100 మొదట్లో గమనికలు ఏదైనా సూచించడానికి లేదు. 1145 00:50:58,100 --> 00:51:00,950 వారు పాయింటు విషయాలు pointees అని మరియు వాటిని ఏర్పాటు 1146 00:51:00,950 --> 00:51:02,330 ఒక ప్రత్యేక అడుగు. 1147 00:51:02,330 --> 00:51:03,210 >> కుడి, కుడి, -ఓహ్. 1148 00:51:03,210 --> 00:51:03,940 నేను తెలుసు. 1149 00:51:03,940 --> 00:51:05,730 Pointees ప్రత్యేక ఉన్నాయి. 1150 00:51:05,730 --> 00:51:08,310 సో ఎలా మీరు ఒక pointee కేటాయించుటకు లేదు? 1151 00:51:08,310 --> 00:51:11,960 >> -OK, బాగా ఈ కోడ్ కేటాయించుకునే ఒక కొత్త పూర్ణాంక pointee, 1152 00:51:11,960 --> 00:51:15,050 మరియు ఈ భాగం x అమర్చుతుంది దానికి మార్చాలి. 1153 00:51:15,050 --> 00:51:16,240 >> -Hey, ఆ మంచి కనిపిస్తోంది. 1154 00:51:16,240 --> 00:51:17,743 కనుక ఇది ఏదో తయారు. 1155 00:51:17,743 --> 00:51:23,580 >> -OK, నేను చేస్తాము పాయింట్లు x dereference దాని pointee లోకి సంఖ్య 42 నిల్వ. 1156 00:51:23,580 --> 00:51:27,130 ఈ ట్రిక్ కోసం, నేను చెయ్యాలి నా dereferencing యొక్క మేజిక్ మంత్రదండం. 1157 00:51:27,130 --> 00:51:30,200 >> Dereferencing యొక్క -మీ మేజిక్ మంత్రదండం? 1158 00:51:30,200 --> 00:51:32,310 ఊ, ఆ, ఆ గొప్ప. 1159 00:51:32,310 --> 00:51:34,270 >> -ఈ కోడ్ కనిపిస్తుంది ఏమిటి. 1160 00:51:34,270 --> 00:51:35,970 నేను అనేక ఏర్పాటు చేస్తాము and-- 1161 00:51:35,970 --> 00:51:37,070 >> [పాప్ ధ్వని] 1162 00:51:37,070 --> 00:51:39,140 >> -Hey, చేజారిపోతుంది అక్కడ చూడండి. 1163 00:51:39,140 --> 00:51:43,980 కాబట్టి, x ఒక dereference చేయడం అనుసరిస్తుంది బాణం దాని pointee ప్రాప్తి చేయడానికి. 1164 00:51:43,980 --> 00:51:46,150 ఈ సందర్భంలో, అక్కడ 42 నిల్వ. 1165 00:51:46,150 --> 00:51:50,700 హే, సంఖ్య నిల్వ దానిని ఉపయోగించి ప్రయత్నించండి ఇతర పాయింటర్ ద్వారా 13, y. 1166 00:51:50,700 --> 00:51:51,840 >> -అలాగే. 1167 00:51:51,840 --> 00:51:56,270 నేను వై ఇక్కడ పైగా వెళ్తారో, సంఖ్య 13 సెట్ అప్ పొందుటకు. 1168 00:51:56,270 --> 00:52:00,380 ఆపై యొక్క మంత్ర పడుతుంది dereferencing మరియు కేవలం 1169 00:52:00,380 --> 00:52:01,646 >> [బజర్ SOUND] 1170 00:52:01,646 --> 00:52:04,080 >> -ఓహ్, హే పని చేయలేదు. 1171 00:52:04,080 --> 00:52:06,470 Binky, ఊ, నాదగ్గర, సే dereferencing అనుకుంటున్నాను 1172 00:52:06,470 --> 00:52:10,850 సెట్ ఎందుకంటే y ఒక మంచి ఆలోచన pointee అప్ ఒక ప్రత్యేక అడుగు. 1173 00:52:10,850 --> 00:52:12,480 మరియు మనం ఎప్పుడూ చేసియున్నారు భావించడం లేదు. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, మంచి పాయింట్. 1175 00:52:14,620 --> 00:52:19,810 >> అవును, మేము పాయింటర్, Y కేటాయించింది, కానీ మేము ఒక pointee సూచించడానికి సెట్ ఎప్పుడూ. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, చాలా గమనించే. 1177 00:52:21,590 --> 00:52:23,215 -Hey, మీరు అక్కడ మంచి, Binky చూస్తున్నారా. 1178 00:52:23,215 --> 00:52:26,390 మీరు దాన్ని పరిష్కరించడానికి చేయవచ్చు y పాయింట్లు x అదే pointee కు. 1179 00:52:26,390 --> 00:52:29,290 >> -Sure, నేను నా మేజిక్ మంత్రదండం ఉపయోగించడానికి పాయింటర్ అప్పగించిన. 1180 00:52:29,290 --> 00:52:31,970 >> ఒక అవతరిస్తుంది గలవాడు సమస్య, ముందు వంటి? 1181 00:52:31,970 --> 00:52:33,790 >> -కాదు, ఈ pointees టచ్ లేదు. 1182 00:52:33,790 --> 00:52:35,840 ఇది కేవలం ఒక పాయింటర్ మారుస్తుంది అదే విషయం సూచించడానికి 1183 00:52:35,840 --> 00:52:36,465 >> [ధ్వని పాపింగ్] 1184 00:52:36,465 --> 00:52:37,450 మరొక --as. 1185 00:52:37,450 --> 00:52:38,440 >> -అవునా అలాగా. 1186 00:52:38,440 --> 00:52:41,200 X అదే స్థానంలో ఇప్పుడు వై పాయింట్లు. 1187 00:52:41,200 --> 00:52:42,950 కాబట్టి, ఇప్పుడు వై పరిష్కరించబడింది, వేచి. 1188 00:52:42,950 --> 00:52:44,110 ఇది ఒక pointee ఉంది. 1189 00:52:44,110 --> 00:52:47,779 కాబట్టి మీరు మంత్రదండం ప్రయత్నించవచ్చు 13 కి పైగా పంపడానికి మళ్ళీ dereferencing. 1190 00:52:47,779 --> 00:52:51,110 >> -ఓహ్, OK, ఇక్కడ వెళ్తాడు. 1191 00:52:51,110 --> 00:52:52,330 >> -Hey, ఆ చూడండి. 1192 00:52:52,330 --> 00:52:53,570 ఇప్పుడు వై రచనలతో dereferencing. 1193 00:52:53,570 --> 00:52:57,900 మరియు గమనికలు భాగస్వామ్యం ఎందుకంటే ఒక pointee, వారు రెండు 13 చూడండి. 1194 00:52:57,900 --> 00:52:59,952 >> అవును, భాగస్వామ్యం, ఊ, సంసార. 1195 00:52:59,952 --> 00:53:01,535 కాబట్టి, మేము ఇప్పుడు ప్రదేశాలు మారడానికి వెళ్తున్నారు? 1196 00:53:01,535 --> 00:53:03,730 >> -ఓహ్, మేము సమయం లేదు చూడండి. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> మూడు గుర్తు పాయింటర్ నియమాలు -Just. 1199 00:53:06,520 --> 00:53:09,550 సంఖ్య 1, ప్రాథమిక నిర్మాణాన్ని మీరు ఒక పాయింటర్ కలిగి ఉంది, 1200 00:53:09,550 --> 00:53:11,630 మరియు అది ఒక pointee కు చూపాడు. 1201 00:53:11,630 --> 00:53:13,740 కానీ పాయింటర్ మరియు pointee ప్రత్యేక ఉన్నాయి. 1202 00:53:13,740 --> 00:53:15,620 మరియు సాధారణ లోపం ఒక పాయింటర్ ఏర్పాటు ఉంది 1203 00:53:15,620 --> 00:53:18,000 కానీ అది ఒక pointee ఇవ్వాలని మర్చిపోతే. 1204 00:53:18,000 --> 00:53:21,170 >> సంఖ్య 2, పాయింటర్ dereferencing పాయింటర్ మొదలవుతుంది 1205 00:53:21,170 --> 00:53:24,020 మరియు క్రింది దాని బాణం దాని pointee యాక్సెస్. 1206 00:53:24,020 --> 00:53:27,815 మేము అన్ని తెలిసిన, ఈ మాత్రమే అక్కడ ఉంటే పనిచేస్తుంది రకమైన తిరిగి తీసుకుంటున్న ఒక pointee, ఉంది 1207 00:53:27,815 --> 00:53:29,260 సంఖ్య 1 పాలించారు. 1208 00:53:29,260 --> 00:53:31,990 >> సంఖ్య 3, పాయింటర్ అప్పగించిన పడుతుంది ఒక పాయింటర్ 1209 00:53:31,990 --> 00:53:35,330 మరియు సూచించడానికి మార్చుకుంటారు మరొక పాయింటర్ అదే pointee. 1210 00:53:35,330 --> 00:53:37,150 అప్పగించిన తర్వాత కాబట్టి, రెండు పాయింటర్లు 1211 00:53:37,150 --> 00:53:40,927 అదే pointee పాయింటు, కొన్నిసార్లు భాగస్వామ్య అని. 1212 00:53:40,927 --> 00:53:42,510 మరియు ఆ నిజంగా, ఇది ఉంది అంతే. 1213 00:53:42,510 --> 00:53:43,130 బై-బై ఇప్పుడు. 1214 00:53:43,130 --> 00:53:43,475 >> [END ప్లేబ్యాక్] 1215 00:53:43,475 --> 00:53:44,830 >> డేవిడ్ J. మలన్: ఆ CS50 కోసం ఇది. 1216 00:53:44,830 --> 00:53:46,246 ప్రొఫెసర్ నిక్ Parlante ధన్యవాదాలు. 1217 00:53:46,246 --> 00:53:47,730 వచ్చే వారం మీరు చూస్తారు. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [ఎలక్ట్రానిక్ సంగీతాన్ని] 1220 00:53:56,435 --> 00:57:22,775