1 00:00:00,000 --> 00:00:02,490 [Powered by Google Translate] [קס50 ביבליאָטעק] 2 00:00:02,490 --> 00:00:04,220 [נאַטע האַרדיסאָן] [האַרוואַרד אוניווערסיטעט] 3 00:00:04,220 --> 00:00:07,260 [דאס איז קס50. CS50.TV] 4 00:00:07,260 --> 00:00:11,510 די קס50 ביבליאָטעק איז אַ נוציק געצייַג וואָס מיר האָבן אינסטאַלירן אויף די אַפּפּליאַנסע 5 00:00:11,510 --> 00:00:15,870 צו מאַכן עס גרינגער פֿאַר איר צו שרייַבן מגילה אַז פּינטלעך ניצערס פֿאַר אַרייַנשרייַב. 6 00:00:15,870 --> 00:00:21,670 אין דעם ווידעא, מיר וועט ציען צוריק דעם פאָרהאַנג און קוק אין וואָס פּונקט איז אין די קס50 ביבליאָטעק. 7 00:00:21,670 --> 00:00:25,520 >> אין דעם ווידעא אויף C לייברעריז, מיר רעדן וועגן ווי איר # אַרייַננעמען כעדערז טעקעס 8 00:00:25,520 --> 00:00:27,570 פון דער ביבליאָטעק אין דיין מקור קאָד, 9 00:00:27,570 --> 00:00:31,150 און דאַן איר לינק מיט אַ ביינערי ביבליאָטעק טעקע בעשאַס די פֿאַרבינדונג לבֿנה 10 00:00:31,150 --> 00:00:33,140 פון דער זאַמלונג פּראָצעס. 11 00:00:33,140 --> 00:00:36,440 די כעדער טעקעס ספּעציפיצירן די צובינד פון דער ביבליאָטעק. 12 00:00:36,440 --> 00:00:41,280 וואָס איז, זיי דעטאַל אַלע פון ​​די רעסורסן אַז די ביבליאָטעק האט פאַראַנען פֿאַר איר צו נוצן, 13 00:00:41,280 --> 00:00:45,250 ווי פונקציאָנירן דעקלעריישאַנז, קאַנסטאַנץ, און דאַטן טייפּס. 14 00:00:45,250 --> 00:00:48,890 די ביינערי ביבליאָטעק טעקע כּולל די ימפּלאַמענטיישאַן פון דער ביבליאָטעק, 15 00:00:48,890 --> 00:00:54,580 וואָס איז צונויפגעשטעלט פון דער ביבליאָטעק ס 'כעדער טעקעס און די ביבליאָטעק ס. C מקור קאָד טעקעס. 16 00:00:54,580 --> 00:00:59,820 >> די ביינערי ביבליאָטעק טעקע איז נישט זייער טשיקאַווע צו קוקן בייַ זינט עס ס, געזונט, אין ביינערי. 17 00:00:59,820 --> 00:01:03,300 אַזוי, לאָזן ס נעמען אַ קוק אין די כעדער טעקעס פֿאַר די ביבליאָטעק אַנשטאָט. 18 00:01:03,300 --> 00:01:07,710 אין דעם פאַל, דאָרט ס נאָר איין כעדער טעקע גערופן קס50.ה. 19 00:01:07,710 --> 00:01:11,040 מיר ווע אינסטאַלירן עס אין דער באַניצער אַרייַננעמען Directory 20 00:01:11,040 --> 00:01:15,150 צוזאמען מיט די אנדערע סיסטעם לייברעריז 'כעדער טעקעס. 21 00:01:15,150 --> 00:01:21,530 >> איינער פון די ערשטער זאכן איר וועט באַמערקן איז אַז קס50.ה # כולל כעדער טעקעס פון אנדערע לייברעריז - 22 00:01:21,530 --> 00:01:25,670 לאָזנ שווימען, לימאַץ, נאָרמאַל באָאָל, און נאָרמאַל ליב. 23 00:01:25,670 --> 00:01:28,800 ווידער, פאלגענדע דער פּרינציפּ פון נישט ריינווענטינג די ראָד, 24 00:01:28,800 --> 00:01:33,490 מיר ווע געבויט די קס0 ביבליאָטעק ניצן מכשירים אַז אנדערע צוגעשטעלט פֿאַר אונדז. 25 00:01:33,490 --> 00:01:38,690 >> דער ווייַטער זאַך איר וועט זען אין די ביבליאָטעק איז אַז מיר דעפינירן אַ נייַ טיפּ גערופן "שטריקל." 26 00:01:38,690 --> 00:01:42,330 דאס שורה טאַקע נאָר קריייץ אַ אַליאַס פֿאַר די טשאַר * טיפּ, 27 00:01:42,330 --> 00:01:46,000 אַזוי עס טוט נישט מאַדזשיקאַלי ימביו די נייַ שטריקל טיפּ מיט אַטראַביוץ 28 00:01:46,000 --> 00:01:49,650 קאַמאַנלי פארבונדן מיט שטריקל אַבדזשעקס אין אנדערע שפּראַכן, 29 00:01:49,650 --> 00:01:50,850 אַזאַ ווי לענג. 30 00:01:50,850 --> 00:01:55,180 די סיבה מיר ווע געטאן דעם איז צו שילד נייַ פּראָוגראַמערז פון די גאָרי פרטים 31 00:01:55,180 --> 00:01:57,580 פון פּוינטערז ביז זיי ניטאָ גרייט. 32 00:01:57,580 --> 00:02:00,130 >> דער ווייַטער טייל פון די כעדער טעקע איז די דערקלערונג פון דעם פאַנגקשאַנז 33 00:02:00,130 --> 00:02:04,410 אַז די קס50 ביבליאָטעק גיט צוזאמען מיט דאַקיומענטיישאַן. 34 00:02:04,410 --> 00:02:06,940 נאָטיץ די מדרגה פון דעטאַל אין די באַמערקונגען דאָ. 35 00:02:06,940 --> 00:02:10,560 דאס איז סופּער וויכטיק אַזוי אַז מען וויסן ווי צו נוצן די פאַנגקשאַנז. 36 00:02:10,560 --> 00:02:19,150 מיר דערקלערן, אין דרייַ, פאַנגקשאַנז צו פּינטלעך דער באַניצער און צוריקקומען טשאַרס, דאַבאַלז, פלאָוץ, ינץ, 37 00:02:19,150 --> 00:02:24,160 לאַנג לאָנגס, און סטרינגס, ניצן אונדזער אייגן שטריקל טיפּ. 38 00:02:24,160 --> 00:02:26,260 ווייַטערדיק דער פּרינציפּ פון אינפֿאָרמאַציע כיידינג, 39 00:02:26,260 --> 00:02:31,640 מיר האָבן שטעלן אונדזער דעפֿיניציע אין אַ באַזונדער. C ימפּלאַמענטיישאַן טעקע - קס50.ק-- 40 00:02:31,640 --> 00:02:35,110 ליגן אין דער באַניצער מקור וועגווייַזער. 41 00:02:35,110 --> 00:02:38,040 מיר ווע צוגעשטעלט אַז טעקע אַזוי אַז איר קענען נעמען אַ קוק בייַ אים, 42 00:02:38,040 --> 00:02:41,490 לערנען פון אים, און רעקאָמפּילע עס אויף פאַרשידענע מאשינען אויב איר ווילט, 43 00:02:41,490 --> 00:02:45,510 אַפֿילו כאָטש מיר טראַכטן עס ס 'בעסער צו אַרבעטן אויף די אַפּפּליאַנסע פֿאַר דעם סאָרט. 44 00:02:45,510 --> 00:02:47,580 סייַ ווי סייַ, לאָזן ס נעמען אַ קוק בייַ אים איצט. 45 00:02:49,020 --> 00:02:54,620 >> די פאַנגקשאַנז געטטשאַר, געטדאָובלע, געטפלאָאַט, געטינט, און געטלאָנגלאָנג 46 00:02:54,620 --> 00:02:58,160 זענען אַלע געבויט אויף שפּיץ פון די געצטרינג פונקציאָנירן. 47 00:02:58,160 --> 00:03:01,510 עס טורנס אויס אַז זיי אַלע נאָכגיין יסענשאַלי דער זעלביקער מוסטער. 48 00:03:01,510 --> 00:03:04,870 זיי נוצן אַ בשעת שלייף צו פּינטלעך דער באַניצער פֿאַר איין שורה פון אַרייַנשרייַב. 49 00:03:04,870 --> 00:03:08,430 זיי צוריקקומען אַ ספּעציעל ווערט אויב דער באַניצער ינפּוץ אַ ליידיק שורה. 50 00:03:08,430 --> 00:03:11,750 זיי פּרווון צו פּאַרס דער באַניצער ס אַרייַנשרייַב ווי די צונעמען טיפּ, 51 00:03:11,750 --> 00:03:15,010 זייַן עס אַ טשאַר, אַ טאָפּל, אַ לאָזנ שווימען, אאז"ו ו 52 00:03:15,010 --> 00:03:18,710 און דעריבער זיי אָדער צוריקקומען דער רעזולטאַט אויב די אַרייַנשרייַב איז הצלחה פּאַרסט 53 00:03:18,710 --> 00:03:21,330 אָדער זיי רעפּראָמפּט דעם באַניצער. 54 00:03:21,330 --> 00:03:24,230 >> אין אַ הויך גלייַך, עס איז גאָרנישט טאַקע טריקי דאָ. 55 00:03:24,230 --> 00:03:28,760 איר זאל האָבן געשריבן סימילאַרלי סטראַקטשערד קאָד זיך אין דער פאַרגאַנגענהייַט. 56 00:03:28,760 --> 00:03:34,720 טאָמער די מערסט קריפּטיק-קוקן טייל איז די ססקאַנף רופן אַז פּאַרסעס דער באַניצער ס אַרייַנשרייַב. 57 00:03:34,720 --> 00:03:38,160 ססקאַנף איז טייל פון די אַרייַנשרייַב פֿאָרמאַט באַניצער משפּחה. 58 00:03:38,160 --> 00:03:42,300 עס לעבן אין נאָרמאַל יאָ.ה, און זייַן אַרבעט איז צו פּאַרס אַ C שטריקל, 59 00:03:42,300 --> 00:03:46,520 לויט צו אַ באַזונדער פֿאָרמאַט, סטאָרינג דער פּאַרסע רעזולטאַטן אין בייַטעוודיק 60 00:03:46,520 --> 00:03:48,720 צוגעשטעלט דורך די קאָלער. 61 00:03:48,720 --> 00:03:53,570 זינט די אַרייַנשרייַב פֿאָרמאַט באַניצער פאַנגקשאַנז זענען זייער נוצלעך, וויידלי געניצט פאַנגקשאַנז 62 00:03:53,570 --> 00:03:56,160 וואָס זענען נישט סופּער ינטואַטיוו בייַ ערשטער, 63 00:03:56,160 --> 00:03:58,300 מיר וועט גיין איבער ווי ססקאַנף אַרבעט. 64 00:03:58,300 --> 00:04:03,330 >> דער ערשטער אַרגומענט צו ססקאַנף איז אַ טשאַר * - אַ טייַטל צו אַ כאַראַקטער. 65 00:04:03,330 --> 00:04:05,150 פֿאַר די פֿונקציע צו אַרבעטן רעכט, 66 00:04:05,150 --> 00:04:08,340 אַז כאַראַקטער זאָל זייַן דער ערשטער כאַראַקטער פון אַ C שטריקל, 67 00:04:08,340 --> 00:04:12,270 טערמאַנייטיד מיט די נאַל \ 0 כאַראַקטער. 68 00:04:12,270 --> 00:04:15,120 דאס איז די שטריקל צו פּאַרס 69 00:04:15,120 --> 00:04:18,269 די רגע אַרגומענט צו ססקאַנף איז אַ פֿאָרמאַט שטריקל, 70 00:04:18,269 --> 00:04:20,839 טיפּיקלי דורכגעגאנגען אין ווי אַ שטריקל קעסיידערדיק, 71 00:04:20,839 --> 00:04:24,040 און איר זאל האָבן געזען אַ שטריקל ווי דעם איידער ווען ניצן פּרינטף. 72 00:04:24,040 --> 00:04:28,650 א פּראָצענט צייכן אין די פֿאָרמאַט שטריקל ינדיקייץ אַ באַניצער ספּעסיפיער. 73 00:04:28,650 --> 00:04:30,850 דער כאַראַקטער מיד פאלגענדע אַ פּראָצענט צייכן, 74 00:04:30,850 --> 00:04:35,430 ינדיקייץ די C טיפּ אַז מיר ווילן ססקאַנף צו בייַטן צו. 75 00:04:35,430 --> 00:04:40,090 אין געטינט, איר זען אַז עס איז אַ% ד און אַ% C. 76 00:04:40,090 --> 00:04:48,690 דאס מיטל וואָס ססקאַנף וועט פּרובירן צו אַ דעצימאַל ינט - דער% ד - און אַ טשאַר - דער% C. 77 00:04:48,690 --> 00:04:51,510 פֿאַר יעדער באַניצער ספּעסיפיער אין דעם פֿאָרמאַט שטריקל, 78 00:04:51,510 --> 00:04:56,620 ססקאַנף יקספּעקץ אַ קאָראַספּאַנדינג אַרגומענט שפּעטער אין זייַן אַרגומענט רשימה. 79 00:04:56,620 --> 00:05:00,850 אַז אַרגומענט מוזן פונט צו אַ אַפּראָופּרייטלי טייפּט אָרט 80 00:05:00,850 --> 00:05:04,000 אין וואָס צו קראָם דער רעזולטאַט פון דעם באַניצער. 81 00:05:04,000 --> 00:05:08,910 >> די טיפּיש וועג פון טאן דעם איז צו שאַפֿן אַ בייַטעוודיק אויף דעם אָנלייגן איידער די ססקאַנף רופן 82 00:05:08,910 --> 00:05:11,440 פֿאַר יעדער נומער וואָס איר ווילן צו פּאַרס פון די שטריקל 83 00:05:11,440 --> 00:05:15,520 און דאַן נוצן דעם אַדרעס אָפּעראַטאָר - די אַמפּערסאַנד - צו פאָרן פּוינטערז 84 00:05:15,520 --> 00:05:19,100 צו יענע וועריאַבאַלז צו די ססקאַנף רופן. 85 00:05:19,100 --> 00:05:22,720 איר קענען זען אַז אין געטינט מיר טאָן פּונקט דעם. 86 00:05:22,720 --> 00:05:28,240 רעכט פאר די ססקאַנף רופן, מיר דערקלערן אַ ינט גערופן ען און אַ טשאַר רופן C אויף דעם אָנלייגן, 87 00:05:28,240 --> 00:05:32,340 און מיר פאָרן פּוינטערז צו זיי אין די ססקאַנף רופן. 88 00:05:32,340 --> 00:05:35,800 פּאַטינג די וועריאַבאַלז אויף דעם אָנלייגן איז בילכער איבער ניצן פּלאַץ אַלאַקייטיד 89 00:05:35,800 --> 00:05:39,350 אויף די קופּע מיט מאַללאָק, זינט איר ויסמייַדן די אָוווערכעד פון די מאַללאָק רופן, 90 00:05:39,350 --> 00:05:43,060 און איר טאָן ניט האָבן צו זאָרג וועגן ליקינג זכּרון. 91 00:05:43,060 --> 00:05:47,280 אותיות נישט פּרעפיקסעד דורך אַ פּראָצענט צייכן טאָן נישט פּינטלעך באַניצער. 92 00:05:47,280 --> 00:05:50,380 אלא זיי נאָר לייגן צו די פֿאָרמאַט באַשרייַבונג. 93 00:05:50,380 --> 00:05:56,500 >> פֿאַר בייַשפּיל, אויב דעם פֿאָרמאַט שטריקל אין געטינט געווען אַ% ד אַנשטאָט, 94 00:05:56,500 --> 00:05:59,800 ססקאַנף וואָלט קוקן פֿאַר דעם בריוו אַ נאכגעגאנגען דורך אַ ינט, 95 00:05:59,800 --> 00:06:04,360 און בשעת עס וואָלט פּרווון צו בייַטן די ינט, עס וואָלט ניט טאָן עפּעס אַנדערש מיט די אַ. 96 00:06:04,360 --> 00:06:07,440 דער בלויז אויסנאַם צו דעם איז ווהיטעספּאַסע. 97 00:06:07,440 --> 00:06:11,030 ווייַס פּלאַץ אותיות אין די פֿאָרמאַט שטריקל גלייַכן קיין סומע פון ​​ווהיטעספּאַסע - 98 00:06:11,030 --> 00:06:12,890 אַפֿילו קיינער בייַ אַלע. 99 00:06:12,890 --> 00:06:18,100 אַזוי, אַז ס וואָס די באַמערקונג דערמאנט עפשער מיט לידינג און / אָדער טריילינג ווהיטעספּאַסע. 100 00:06:18,100 --> 00:06:22,910 אַזוי, בייַ דעם פונט עס קוקט ווי אונדזער ססקאַנף רופן וועט פּרובירן צו פּאַרס דער באַניצער ס אַרייַנשרייַב שטריקל 101 00:06:22,910 --> 00:06:25,380 דורך קאָנטראָלירונג פֿאַר מעגלעך לידינג ווהיטעספּאַסע, 102 00:06:25,380 --> 00:06:29,300 נאכגעגאנגען דורך אַ ינט וואָס וועט זייַן קאָנווערטעד און סטאָרד אין דער ינט בייַטעוודיק N 103 00:06:29,300 --> 00:06:33,090 נאכגעגאנגען דורך עטלעכע סומע פון ​​ווהיטעספּאַסע, און נאכגעגאנגען דורך אַ כאַראַקטער 104 00:06:33,090 --> 00:06:35,810 סטאָרד אין די טשאַר בייַטעוודיק C. 105 00:06:35,810 --> 00:06:37,790 >> וואָס וועגן די צוריקקומען ווערט? 106 00:06:37,790 --> 00:06:41,560 ססקאַנף וועט פּאַרס דער אַרייַנשרייַב שורה פון אָנהייב צו ענדיקן, 107 00:06:41,560 --> 00:06:44,860 סטאָפּפּינג ווען עס ריטשאַז דער סוף אָדער ווען אַ כאַראַקטער אין דעם אַרייַנשרייַב 108 00:06:44,860 --> 00:06:49,320 טוט ניט גלייַכן אַ פֿאָרמאַט כאַראַקטער אָדער ווען עס קענען נישט מאַכן אַ באַניצער. 109 00:06:49,320 --> 00:06:52,690 עס ס צוריקקומען ווערט איז געניצט צו איין ווען עס פארשטאפט. 110 00:06:52,690 --> 00:06:55,670 אויב עס פארשטאפט, ווייַל עס ריטשט די סוף פון די אַרייַנשרייַב שטריקל 111 00:06:55,670 --> 00:07:00,630 איידער מאכן קיין קאַנווערזשאַנז און איידער פיילינג צו גלייַכן טייל פון די פֿאָרמאַט שטריקל, 112 00:07:00,630 --> 00:07:04,840 דעריבער די ספּעציעל קעסיידערדיק עאָף איז אומגעקערט. 113 00:07:04,840 --> 00:07:08,200 אַנדערש, עס קערט די נומער פון מצליח קאַנווערזשאַנז, 114 00:07:08,200 --> 00:07:14,380 וואָס קען זייַן 0, 1, אָדער 2, זינט מיר ווע געבעטן פֿאַר צוויי קאַנווערזשאַנז. 115 00:07:14,380 --> 00:07:19,000 אין אונדזער פאַל, מיר ווילן צו מאַכן זיכער אַז דער באַניצער טייפּט אין אַ ינט און בלויז אַ ינט. 116 00:07:19,000 --> 00:07:23,370 >> אַזוי, מיר ווילן ססקאַנף צו צוריקקומען 1. זען וואָס? 117 00:07:23,370 --> 00:07:26,850 אויב ססקאַנף אומגעקערט 0, דעמאָלט קיין קאַנווערזשאַנז זענען געמאכט, 118 00:07:26,850 --> 00:07:31,690 אַזוי דער באַניצער טייפּט עפּעס אנדערע ווי אַ ינט אין די אָנהייב פון די אַרייַנשרייַב. 119 00:07:31,690 --> 00:07:37,100 אויב ססקאַנף קערט 2, דעמאָלט דער באַניצער האט רעכט טיפּ עס אין בייַ די אָנהייב פון די אַרייַנשרייַב, 120 00:07:37,100 --> 00:07:41,390 אָבער זיי דעמאָלט טייפּט אין עטלעכע ניט-ווהיטעספּאַסע כאַראַקטער דערנאָכדעם 121 00:07:41,390 --> 00:07:44,940 זינט דער% C באַניצער סאַקסידאַד. 122 00:07:44,940 --> 00:07:49,570 וואַו, אַז ס 'גאַנץ אַ לאַנג דערקלערונג פֿאַר איין פֿונקציע רופן. 123 00:07:49,570 --> 00:07:53,460 סייַ ווי סייַ, אויב איר ווילן מער אינפֿאָרמאַציע אויף ססקאַנף און זייַן סיבלינגז, 124 00:07:53,460 --> 00:07:57,130 טשעק אויס די מענטש בלעטער, גוגל, אָדער ביידע. 125 00:07:57,130 --> 00:07:58,780 עס זענען גורל פון פֿאָרמאַט שטריקל אָפּציעס, 126 00:07:58,780 --> 00:08:03,830 און די קענען ראַטעווען איר אַ פּלאַץ פון מאַנואַל אַרבעט ווען טריינג צו פּאַרס סטרינגס אין סי 127 00:08:03,830 --> 00:08:07,180 >> די לעצט פונקציאָנירן אין דער ביבליאָטעק צו קוקן אין איז געצטרינג. 128 00:08:07,180 --> 00:08:10,310 עס טורנס אויס אַז געצטרינג איז אַ טריקי פונקציאָנירן צו שרייַבן רעכט, 129 00:08:10,310 --> 00:08:14,290 אַפֿילו כאָטש עס מיינט ווי אַזאַ אַ פּשוט, פּראָסט אַרבעט. 130 00:08:14,290 --> 00:08:16,170 פארוואס איז דאָס דער פאַל? 131 00:08:16,170 --> 00:08:21,380 נו, לאָזן ס טראַכטן וועגן ווי מיר רע געגאנגען צו קראָם די שורה וואָס דער באַניצער טייפּס ין 132 00:08:21,380 --> 00:08:23,880 זינט אַ שטריקל איז אַ סיקוואַנס פון טשאַרס, 133 00:08:23,880 --> 00:08:26,430 מיר זאל וועלן צו קראָם עס אין אַ מענגע אויף דעם אָנלייגן, 134 00:08:26,430 --> 00:08:31,250 אָבער מיר וואָלט דאַרפֿן צו וויסן ווי לאַנג די מענגע איז געגאנגען צו זייַן ווען מיר דערקלערן עס. 135 00:08:31,250 --> 00:08:34,030 פּונקט אַזוי, אויב מיר ווילן צו לייגן עס אויף די קופּע, 136 00:08:34,030 --> 00:08:38,090 מיר דאַרפֿן צו פאָרן צו מאַללאָק די נומער פון ביטעס מיר ווילן צו רעזערוו, 137 00:08:38,090 --> 00:08:39,730 אָבער דעם איז אוממעגלעך. 138 00:08:39,730 --> 00:08:42,760 מיר האָבן קיין געדאַנק ווי פילע טשאַרס דער באַניצער וועט טיפּ אין 139 00:08:42,760 --> 00:08:46,590 איידער דער באַניצער פאקטיש טוט טיפּ זיי. 140 00:08:46,590 --> 00:08:50,720 >> א נאיוו לייזונג צו דעם פּראָבלעם איז צו נאָר רעזערוו אַ גרויס פּייַדע פון ​​פּלאַץ, זאָגן, 141 00:08:50,720 --> 00:08:54,540 אַ בלאָק פון 1000 טשאַרס פֿאַר דעם באַניצער 'ס אַרייַנשרייַב, 142 00:08:54,540 --> 00:08:57,980 אַסומינג אַז דער באַניצער וואָלט קיינמאָל טיפּ אין אַ שטריקל וואָס לאַנג. 143 00:08:57,980 --> 00:09:00,810 דאס איז אַ שלעכט געדאַנק פֿאַר צוויי סיבות. 144 00:09:00,810 --> 00:09:05,280 ערשטער, אַסומינג אַז ניצערס טיפּיקלי טאָן ניט טיפּ אין סטרינגס אַז לאַנג, 145 00:09:05,280 --> 00:09:07,610 איר קען וויסט אַ פּלאַץ פון זכּרון. 146 00:09:07,610 --> 00:09:10,530 אויף מאָדערן מאשינען, דאָס זאל ניט זייַן אַן אַרויסגעבן אויב איר טאָן דעם 147 00:09:10,530 --> 00:09:13,890 אין איין אָדער צוויי אפגעזונדערט ינסטאַנסיז, 148 00:09:13,890 --> 00:09:17,630 אָבער אויב איר ניטאָ גענומען באַניצער ס אַרייַנשרייַב אין אַ שלייף און סטאָרינג פֿאַר שפּעטער נוצן, 149 00:09:17,630 --> 00:09:20,870 איר קענען געשווינד זויגן אַרויף אַ טאָן פון זכּרון. 150 00:09:20,870 --> 00:09:24,450 אַדדיטיאָנאַללי, אויב דער פּראָגראַם איר ניטאָ שרייבן איז פֿאַר אַ קלענערער קאָמפּיוטער - 151 00:09:24,450 --> 00:09:28,100 אַ מיטל ווי אַ סמאַרטפאָנע אָדער עפּעס אַנדערש מיט לימיטעד זכּרון - 152 00:09:28,100 --> 00:09:32,060 דעם לייזונג וועט גרונט פּראָבלעמס אַ פּלאַץ פאַסטער. 153 00:09:32,060 --> 00:09:36,450 די רגע, מער ערנסט סיבה צו ניט טאָן דעם איז אַז עס בלעטער דיין פּראָגראַם שפּירעוודיק 154 00:09:36,450 --> 00:09:39,710 צו וואָס ס גערופן אַ באַפער לויפן באַפאַלן. 155 00:09:39,710 --> 00:09:45,840 אין פּראָגראַממינג, אַ באַפער איז זכּרון געניצט צו טעמפּערעראַלי קראָם אַרייַנשרייַב אָדער רעזולטאַט דאַטן, 156 00:09:45,840 --> 00:09:48,980 וואָס אין דעם פאַל איז אונדזער 1000-טשאַר פאַרשפּאַרן. 157 00:09:48,980 --> 00:09:53,370 א באַפער לויפן אַקערז ווען דאַטן איז געשריבן פאַרגאַנגענהייַט די סוף פון די בלאָק. 158 00:09:53,370 --> 00:09:57,790 >> פֿאַר בייַשפּיל, אויב אַ באַניצער פאקטיש טוט טיפּ אין מער ווי 1000 טשאַרס. 159 00:09:57,790 --> 00:10:01,570 איר זאל האָבן איבערגעלעבט דעם אַקסאַדענאַלי ווען פּראָגראַממינג מיט ערייז. 160 00:10:01,570 --> 00:10:05,620 אויב איר האָבן אַ מענגע פון ​​10 ינץ, גאָרנישט סטאַפּס איר פון טריינג צו לייענען אָדער שרייַבן 161 00:10:05,620 --> 00:10:07,810 דער 15 ינט. 162 00:10:07,810 --> 00:10:10,000 עס זענען קיין קאַמפּיילער וואָרנינגז אָדער ערראָרס. 163 00:10:10,000 --> 00:10:13,250 די פּראָגראַם נאָר בלאַנדערז גלייַך פאָרויס און אַקסעססעס די זכּרון 164 00:10:13,250 --> 00:10:18,150 ווו עס מיינט די 15 ינט וועט זייַן, און דאָס קענען אָווועררייט דיין אנדערע וועריאַבאַלז. 165 00:10:18,150 --> 00:10:22,040 אין די ערגסט פאַל, איר קענען אָווועררייט עטלעכע פון ​​דיין פּראָגראַם ס ינערלעך 166 00:10:22,040 --> 00:10:26,820 קאָנטראָל מעקאַניזאַמז, קאָזינג דיין פּראָגראַם צו פאקטיש ויספירן פאַרשידענע ינסטראַקשאַנז 167 00:10:26,820 --> 00:10:28,340 ווי איר בדעה. 168 00:10:28,340 --> 00:10:31,360 >> איצט, עס ס נישט פּראָסט צו טאָן דעם אַקסאַדענאַלי, 169 00:10:31,360 --> 00:10:35,150 אָבער דאָס איז אַ פערלי פּראָסט טעכניק וואָס שלעכט גייז נוצן צו ברעכן מגילה 170 00:10:35,150 --> 00:10:39,080 און שטעלן בייזע קאָד אויף אנדערע מענטשן ס קאָמפּיוטערס. 171 00:10:39,080 --> 00:10:42,910 דעריבער, מיר קענען נישט נאָר נוצן אונדזער נאיוו לייזונג. 172 00:10:42,910 --> 00:10:45,590 מיר דאַרפֿן אַ וועג צו פאַרמייַדן אונדזער מגילה פון זייַענדיק שפּירעוודיק 173 00:10:45,590 --> 00:10:47,880 צו אַ באַפער לויפן באַפאַלן. 174 00:10:47,880 --> 00:10:51,430 צו טאָן דאָס, מיר דאַרפֿן צו מאַכן זיכער אַז אונדזער באַפער קענען וואַקסן ווי מיר לייענען 175 00:10:51,430 --> 00:10:53,850 מער אַרייַנשרייַב פון דעם באַניצער. 176 00:10:53,850 --> 00:10:57,440 די לייזונג? מיר נוצן אַ קופּע אַלאַקייטיד באַפער. 177 00:10:57,440 --> 00:10:59,950 זינט מיר קענען רעסיזע עס ניצן די רעסיזע די רעאַללאָק פונקציאָנירן, 178 00:10:59,950 --> 00:11:04,580 און מיר האַלטן שפּור פון צוויי נומערן - דער אינדעקס פון דער ווייַטער ליידיק שפּעלטל אין די באַפער 179 00:11:04,580 --> 00:11:08,390 און די לענג אָדער קאַפּאַציטעט פון די באַפער. 180 00:11:08,390 --> 00:11:13,210 מיר לייענען אין טשאַרס פון דעם באַניצער איין אין אַ צייַט ניצן די פגעטק פונקציאָנירן. 181 00:11:13,210 --> 00:11:19,360 דער אַרגומענט די פגעטק פונקציאָנירן נעמט - סטדין - איז אַ דערמאָנען צו דער נאָרמאַל אַרייַנשרייַב שטריקל, 182 00:11:19,360 --> 00:11:23,810 וואָס איז אַ פּרעקאָננעקטעד אַרייַנשרייַב קאַנאַל וואָס איז געניצט צו אַריבערפירן דעם באַניצער 'ס אַרייַנשרייַב 183 00:11:23,810 --> 00:11:26,270 פון די וואָקזאַל צו די פּראָגראַם. 184 00:11:26,270 --> 00:11:29,890 >> ווען דער באַניצער טייפּס אין אַ נייַ כאַראַקטער, מיר טשעק צו זען אויב די אינדעקס 185 00:11:29,890 --> 00:11:35,810 פון דער ווייַטער פֿרייַ שפּעלטל פּלוס 1 איז גרעסער ווי די קאַפּאַציטעט פון די באַפער. 186 00:11:35,810 --> 00:11:39,690 די +1 קומט אין ווייַל אויב דער ווייַטער פֿרייַ אינדעקס איז 5, 187 00:11:39,690 --> 00:11:44,150 דעמאָלט אונדזער באַפער ס לענג מוזן זייַן 6 דאַנק צו 0 ינדעקסינג. 188 00:11:44,150 --> 00:11:48,350 אויב מיר 'ווע לויפן אויס פון פּלאַץ אין די באַפער, דעמאָלט מיר פּרווון צו רעסיזע עס, 189 00:11:48,350 --> 00:11:51,690 דאַבלינג עס אַזוי אַז מיר שנייַדן אַראָפּ אויף די נומער פון מאל אַז מיר רעסיזע 190 00:11:51,690 --> 00:11:54,760 אויב דער באַניצער איז טייפּינג אין אַ טאַקע לאַנג שטריקל. 191 00:11:54,760 --> 00:11:57,950 אויב די שטריקל האט גאַטאַן אויך לאַנג אָדער אויב מיר לויפן אויס פון קופּע זכּרון, 192 00:11:57,950 --> 00:12:01,350 מיר פֿרייַ אונדזער באַפער און צוריקקומען נאַל. 193 00:12:01,350 --> 00:12:04,170 >> צום סוף, מיר צוגעבן די טשאַר צו די באַפער. 194 00:12:04,170 --> 00:12:08,200 אַמאָל דער באַניצער היץ אַרייַן אָדער צוריקקומען, סיגנאַלינג אַ נייַ שורה, 195 00:12:08,200 --> 00:12:12,050 אָדער די ספּעציעל טשאַר - קאָנטראָל די - וואָס סיגנאַלז אַ סוף פון אַרייַנשרייַב, 196 00:12:12,050 --> 00:12:16,240 מיר טאָן אַ טשעק צו זען אויב דער באַניצער פאקטיש טייפּט אין עפּעס בייַ אַלע. 197 00:12:16,240 --> 00:12:18,820 אויב נישט, מיר צוריקקומען נאַל. 198 00:12:18,820 --> 00:12:22,280 אַנדערש, ווייַל אונדזער באַפער איז מיסטאָמע גרעסערע ווי מיר דאַרפֿן, 199 00:12:22,280 --> 00:12:24,830 אין די ערגסט פאַל עס ס כּמעט צוויי מאָל ווי גרויס ווי מיר דאַרפֿן 200 00:12:24,830 --> 00:12:27,830 זינט מיר טאָפּל יעדער צייַט מיר רעסיזע, 201 00:12:27,830 --> 00:12:31,840 מיר מאַכן אַ נייַ קאָפּיע פון ​​דעם שטריקל ניצן נאָר די סומע פון ​​פּלאַץ אַז מיר דאַרפֿן. 202 00:12:31,840 --> 00:12:34,220 מיר לייגן אַן עקסטרע 1 צו די מאַללאָק רופן, 203 00:12:34,220 --> 00:12:37,810 אַזוי אַז עס ס 'פּלאַץ פֿאַר די ספּעציעל נאַל טערמינאַטאָר כאַראַקטער - די \ 0, 204 00:12:37,810 --> 00:12:41,990 וואָס מיר צוגעבן צו דעם שטריקל אַמאָל מיר צייכענען אין די מנוחה פון די אותיות, 205 00:12:41,990 --> 00:12:45,060 ניצן סטרנקפּי אַנשטאָט פון סטרקפּי 206 00:12:45,060 --> 00:12:48,830 אַזוי אַז מיר קענען ספּעציפיצירן פּונקט ווי פילע טשאַרס מיר ווילן צו קאָפּיע. 207 00:12:48,830 --> 00:12:51,690 סטרקפּי קאפיעס ביז עס היץ אַ \ 0. 208 00:12:51,690 --> 00:12:55,740 דעמאָלט מיר פֿרייַ אונדזער באַפער און צוריקקומען די קאָפּיע צו די קאָלער. 209 00:12:55,740 --> 00:12:59,840 >> ווער געוואוסט אַזאַ אַ פּשוט-סימינג פונקציאָנירן קען זייַן אַזוי קאָמפּליצירט? 210 00:12:59,840 --> 00:13:02,820 איצט איר וויסן וואָס גייט אין די קס50 ביבליאָטעק. 211 00:13:02,820 --> 00:13:06,470 >> מייַן נאָמען איז נאַטע האַרדיסאָן, און דאָס איז קס50. 212 00:13:06,470 --> 00:13:08,350 [CS50.TV]