[Powered by Google Translate] [סעקשאַן 4 - מער באַקוועם]
[ראָב באָוודען - האַרוואַרד אוניווערסיטעט]
[דאס איז קס50. - CS50.TV]
מיר האָבן אַ ויספרעג מאָרגן, אין פאַל איר גייז האט ניט וויסן וואָס.
עס ס בייסיקלי אויף אַלץ איר קען האָבן געזען אין קלאַס אָדער זאָל האָבן געזען אין קלאַס.
אַז כולל פּוינטערז, אַפֿילו כאָטש זיי ניטאָ אַ זייער פריש טעמע.
איר זאָל בייַ מינדסטער פֿאַרשטיין די הויך לעוועלס פון זיי.
עפּעס וואָס איז ניטאָ איבער אין קלאַס איר זאָל פֿאַרשטיין פֿאַר די ויספרעג.
אַזוי אויב איר האָט שאלות אויף זיי, איר קענען פרעגן זיי איצט.
אבער דאָס איז געגאנגען צו זייַן אַ זייער תּלמיד-געפירט סעסיע ווו איר גייז פרעגן שאלות,
אַזוי אַלעווייַ מענטשן האָבן שאלות.
טוט ווער עס יז האָבן שאלות?
יא. >> [תּלמיד] קען איר גיין איבער פּוינטערז ווידער?
איך וועט גיין איבער פּוינטערז.
אַלע פון ​​דיין וועריאַבאַלז דאַווקע לעבן אין זכּרון,
אָבער יוזשאַוואַלי איר טאָן ניט זאָרג וועגן וואָס און איר נאָר זאָגן X + 2 און י + 3
און דער קאַמפּיילער וועט רעכענען אויס וואו די זאכן זענען לעבעדיק פֿאַר איר.
אַמאָל איר ניטאָ דילינג מיט פּוינטערז, איצט איר ניטאָ בפירוש ניצן יענע זכּרון ווענדט.
אַזוי אַ איין בייַטעוודיק וועט נאָר אלץ לעבן אין אַ איין אַדרעס אין קיין געגעבן צייַט.
אויב מיר ווילן צו דערקלערן אַ טייַטל, וואָס איז די טיפּ געגאנגען צו קוקן ווי?
>> איך ווילן צו דערקלערן אַ טייַטל פּ. וואָס טוט דער טיפּ קוק ווי?
[תּלמיד] ינט * פּ. >> יאָ. אַזוי ינט * פּ.
און ווי טאָן איך מאַכן עס פונט צו X? >> [תּלמיד] אַמפּערסאַנד.
[באָוודען] אזוי אַמפּערסאַנד איז ממש גערופן די אַדרעס פון אָפּעראַטאָר.
אַזוי ווען איך זאָגן & X עס ס געטינג די זכּרון אַדרעס פון די בייַטעוודיק X.
אַזוי איצט איך האָבן די טייַטל פּ, און ערגעץ אין מיין קאָד איך קענען נוצן * פּ
אָדער איך קען ניצן X און עס וועט זייַן די פּינטלעך זעלבע זאַך.
(* פּ). וואָס איז דאָס טאן? וואָס טוט וואָס שטערן מיינען?
[תּלמיד] עס מיטל אַ ווערט אין אַז פונט. >> יאָ.
אַזוי אויב מיר קוקן בייַ אים, עס קען זייַן זייער נוציק צו ציען אויס די דייאַגראַמז
ווו דאָס איז אַ קליין קעסטל פון זכּרון פֿאַר X, וואָס כאַפּאַנז צו האָבן די ווערט 4,
דעמאָלט מיר האָבן אַ קליין קעסטל פון זכּרון פֿאַר פּ,
און אַזוי פּ פונקטן צו X, אַזוי מיר ציען אַ פייַל פון פּ צו X.
אַזוי ווען מיר זאָגן * פּ מיר רע געזאגט גיין צו די קעסטל וואָס איז פּ.
שטערן איז נאָכפאָלגן די פייַל און דעמאָלט טאָן וועלכער איר ווילן מיט וואָס קעסטל רעכט דאָרט.
אַזוי איך קענען זאָגן * פּ = 7; און וואָס וועט גיין צו די קעסטל וואָס איז X און טוישן וואָס צו 7.
אָדער איך קען זאָגן ינט ז = * פּ * 2; אַז ס קאַנפיוזינג ווייַל עס ס שטערן, שטערן.
די איין שטערן איז דערעפערענסינג פּ, די אנדערע שטערן איז מאַלטאַפּלייינג דורך 2.
נאָטיץ איך קען האָבן נאָר ווי געזונט ריפּלייסט דעם * פּ מיט X.
איר קענען נוצן זיי אין די זעלבע וועג.
און דעמאָלט שפּעטער אויף איך קענען האָבן פּ פונט צו אַ גאָר נייע זאַך.
איך קען נאָר זאָגן פּ = &ז;
אַזוי איצט פּ ניט מער פונקטן צו X; עס ווייזט צו ז.
און קיין מאָל איך טאָן * פּ עס ס די זעלבע ווי טאן ז.
אַזוי די נוצלעך זאַך וועגן דעם איז אַמאָל מיר אָנהייבן געטינג אין פאַנגקשאַנז.
>> עס ס מין פון אַרויסגעוואָרפן צו דערקלערן אַ טייַטל אַז פונקטן צו עפּעס
און דאַן איר ניטאָ נאָר דערעפערענסינג עס
ווען איר קען האָבן געניצט די אָריגינעל בייַטעוודיק צו אָנהייבן מיט.
אבער ווען איר באַקומען אין פאַנגקשאַנז - אַזוי לאָזן ס זאָגן מיר האָבן עטלעכע פונקציאָנירן, ינט פו,
וואָס נעמט אַ טייַטל און נאָר טוט * פּ = 6;
ווי מיר געזען איידער מיט ויסבייַטן, איר קענען נישט טאָן אַ עפעקטיוו ויסבייַטן און אַ באַזונדער פֿונקציע
דורך פּונקט גייט פארביי ינטאַדזשערז ווייַל אַלץ אין C איז שטענדיק גייט פארביי דורך ווערט.
אפילו ווען איר ניטאָ גייט פארביי פּוינטערז איר ניטאָ גייט פארביי דורך ווערט.
עס פּונקט אַזוי כאַפּאַנז אַז יענע וואַלועס זענען זכּרון ווענדט.
אַזוי ווען איך זאָגן פו (פּ); איך בין גייט פארביי די טייַטל אין די פֿונקציע פו
און דעמאָלט פו איז טאן * פּ = 6;
אַזוי ין פון וואָס פונקציאָנירן, * פּ איז נאָך עקוויוואַלענט צו X,
אָבער איך קען נישט נוצן X ין פון וואָס פונקציאָנירן ווייַל עס ס נישט סקאָפּעד ין וואָס פונקציאָנירן.
אַזוי * פּ = 6 איז די בלויז וועג איך קענען צוטריט אַ היגע בייַטעוודיק פון אנדערן פונקציאָנירן.
אָדער, געזונט, פּוינטערז זענען די בלויז וועג איך קענען צוטריט אַ היגע בייַטעוודיק פון אנדערן פונקציאָנירן.
[תּלמיד] זאל 'ס זאָגן איר געוואלט צו צוריקקומען אַ טייַטל. ווי פּונקט טאָן איר טאָן וואָס?
[באָוודען] צוריק אַ טייַטל ווי אין עפּעס ווי ינט י = 3; צוריקקומען & י? >> [תּלמיד] יאָ.
[באָוודען] אָוקיי. איר זאָל קיינמאָל טאָן דעם. דאס איז שלעכט.
איך טראַכטן איך געזען אין די לעקציע סליידז איר אנגעהויבן געזען דעם גאַנץ דיאַגראַמע פון ​​זכּרון
ווו אַרויף דאָ איר ווע גאַט זכּרון אַדרעס 0
און אַראָפּ דאָ איר האָבן זכּרון אַדרעס 4 גיגס אָדער 2 צו דעם 32.
אַזוי דעמאָלט איר ווע גאַט עטלעכע שטאָפּן און עטלעכע שטאָפּן און דאַן איר האָבן דיין אָנלייגן
און איר ווע גאַט דיין קופּע, וואָס איר פּונקט אנגעהויבן לערנען וועגן, גראָוינג אַרויף.
[תּלמיד] איז נישט די קופּע אויבן די אָנלייגן?
>> יאָ. דער קופּע איז אויף שפּיץ, איז נישט עס? >> [תּלמיד] גוט, ער שטעלן 0 אויף שפּיץ.
[תּלמיד] אָה, ער שטעלן 0 אויף שפּיץ. >> [תּלמיד] אָה, אָוקיי.
אָפּלייקענונג: עניווער מיט קס50 איר ניטאָ געגאנגען צו זען אים דעם וועג. >> [תּלמיד] אָוקיי.
עס ס נאָר אַז ווען איר ניטאָ ערשטער געזען סטאַקס,
ווי ווען איר טראַכטן פון אַ אָנלייגן איר טראַכטן פון סטאַקינג זאכן אויף שפּיץ פון איינער דעם אנדערן.
אַזוי מיר טענד צו פליפּ דעם אַרום אַזוי די אָנלייגן איז גראָוינג אַרויף ווי אַ אָנלייגן נאָרמאַלי וואָלט
אַנשטאָט פון דעם אָנלייגן כאַנגגינג אַראָפּ. >> [תּלמיד] צי נישט הויפנס טעקניקלי וואַקסן אַרויף אויך, כאָטש?
עס דעפּענדס אויף וואָס איר מיינען דורך וואַקסן אַרויף.
די אָנלייגן און קופּע שטענדיק וואַקסן אין פאַרקערט אינסטרוקציעס.
א אָנלייגן איז שטענדיק גראָוינג אַרויף אין די געפיל אַז עס ס גראָוינג אַרויף
צו העכער זכּרון ווענדט, און די קופּע איז גראָוינג אַראָפּ
אין אַז עס ס גראָוינג צו נידעריקער זכּרון ווענדט.
אַזוי דער שפּיץ איז 0 און די דנאָ איז הויך זכּרון ווענדט.
זיי ניטאָ ביידע גראָוינג, נאָר אין אַפּאָוזינג אינסטרוקציעס.
[תּלמיד] איך נאָר מענט אַז ווייַל איר האט געזאגט איר שטעלן אָנלייגן אויף די דנאָ
ווייַל עס מיינט מער ינטואַטיוו ווייַל פֿאַר די אָנלייגן צו אָנהייבן בייַ די שפּיץ פון אַ קופּע,
קופּע ס אויף שפּיץ פון זיך אויך, אַזוי דאַץ - >> יאָ.
איר אויך טראַכטן פון די קופּע ווי גראָוינג אַרויף און גרעסערע, אָבער דעם אָנלייגן מער אַזוי.
אַזוי דעם אָנלייגן איז דער איין אַז מיר מין פון ווילן צו ווייַזן גראָוינג אַרויף.
אבער אומעטום איר קוקן אַנדערש איז געגאנגען צו ווייַזן אַדרעס 0 בייַ די שפּיץ
און דעם העכסטן זכּרון אַדרעס אין די דנאָ, אַזוי דאָס איז דיין געוויינטלעך מיינונג פון זכּרון.
>> צי איר האָבן אַ קשיא?
[תּלמיד] קען איר זאָגן אונדז מער וועגן די קופּע?
יאָ. איך וועט באַקומען צו אַז אין אַ רגע.
ערשטער, גיי צוריק צו וואָס אומגעקערט & י איז אַ שלעכט זאַך,
אויף דעם אָנלייגן איר האָבן אַ בינטל פון אָנלייגן ראָמען וואָס פאָרשטעלן אַלע פון ​​די פאַנגקשאַנז
וואָס האָבן שוין גערופן.
אַזוי יגנאָרינג פֿריִערדיקע זאכן, דער שפּיץ פון דיין אָנלייגן איז שטענדיק געגאנגען צו זייַן דער הויפּט פֿונקציע
זינט אַז ס דער ערשטער פונקציאָנירן אַז ס זייַענדיק גערופן.
און דעריבער ווען איר רופן אן אנדער פונקציאָנירן, די אָנלייגן איז געגאנגען צו וואַקסן אַראָפּ.
אַזוי אויב איך רופן עטלעכע פונקציאָנירן, פו, און עס געץ זייַן אייגן אָנלייגן ראַם,
עס קענען רופן עטלעכע פונקציאָנירן, באַר; עס געץ זייַן אייגן אָנלייגן ראַם.
און באַר קען זייַן רעקורסיווע און עס קען רופן זיך,
און אַזוי אַז רגע רופן צו באַר איז געגאנגען צו באַקומען זייַן אייגן אָנלייגן ראַם.
און אַזוי וואָס גייט אין די אָנלייגן ראָמען זענען אַלע פון ​​די היגע וועריאַבאַלז
און אַלע פון ​​די פֿונקציע טענות אַז -
קיין זאכן וואָס זענען לאָוקאַלי סקאָפּעד צו דעם פֿונקציע גיין אין די סטאַק ראָמען.
אַזוי אַז מיטל ווען איך געזאגט עפּעס ווי באַר איז אַ פֿונקציע,
איך בין נאָר געגאנגען צו דערקלערן אַ ינטעגער און דעמאָלט צוריקקומען אַ טייַטל צו אַז ינטעגער.
אַזוי ווו טוט י לעבן?
[תּלמיד] י לעבן אין באַר. >> [באָוודען] יאָ.
ערגעץ אין דעם ביסל קוואַדראַט פון זכּרון איז אַ ליטאַלער קוואַדראַט וואָס האט י אין עס.
ווען איך צוריקקומען & י, איך בין אומגעקערט אַ טייַטל צו דעם ביסל בלאָק פון זכּרון.
אבער דעמאָלט ווען אַ פֿונקציע קערט, זייַן אָנלייגן ראַם געץ פּאַפּט אַוועק דעם אָנלייגן.
און אַז ס וואָס עס ס גערופן אָנלייגן.
עס ס ווי די אָנלייגן דאַטן סטרוקטור, אויב איר וויסן וואָס אַז איז.
אָדער אַפֿילו ווי אַ אָנלייגן פון טרייַס איז שטענדיק דער בייַשפּיל,
הויפּט איז געגאנגען צו גיין אויף די דנאָ, דעריבער דער ערשטער פונקציאָנירן איר רופן איז געגאנגען צו גיין אויף שפּיץ פון וואָס,
און איר קענען נישט באַקומען צוריק צו הויפּט ביז איר צוריקקומען פון אַלע פאַנגקשאַנז וואָס האָבן שוין גערופן
וואָס האָבן שוין געשטעלט אויף שפּיץ פון עס.
>> [תּלמיד] אזוי אויב איר האט טאָן צוריקקומען די & י, וואָס ווערט איז אונטערטעניק צו טוישן אָן באַמערקן.
יא, יץ - >> [תּלמיד] עס קען זייַן אָוווערריטאַן. >> יאָ.
עס ס גאָר - אויב איר פּרובירן און -
דאס וואָלט אויך זייַן אַ ינט * באַר ווייַל עס ס אומגעקערט אַ טייַטל,
אַזוי זייַן צוריקקומען טיפּ איז ינט *.
אויב איר פּרובירן צו נוצן די צוריקקומען ווערט פון דעם פֿונקציע, עס ס אַנדיפיינד נאַטור
ווייַל אַז טייַטל פונקטן צו שלעכט זכּרון. >> [תּלמיד] אָוקיי.
אַזוי וואָס אויב, פֿאַר בייַשפּיל, איר דערקלערט ינט * י = מאַללאָק (סיזעאָף (ינט))?
אַז ס 'בעסער. יא.
[תּלמיד] מיר גערעדט וועגן ווי ווען מיר שלעפּן זאכן צו אונדזער ריסייקאַל בין
זיי ניטאָ נישט פאקטיש ירייסט; מיר נאָר פאַרלירן זייער פּוינטערז.
אַזוי אין דעם פאַל טאָן מיר פאקטיש מעקן די ווערט אָדער איז עס נאָך דאָרט אין זכּרון?
פֿאַר די רובֿ טייל, עס ס געגאנגען צו נאָך זייַן דאָרט.
אבער לאָזן ס זאָגן מיר פּאַסירן צו רופן עטלעכע אנדערע פֿונקציע, באַז.
באַז איז געגאנגען צו באַקומען זייַן אייגן אָנלייגן ראַם אויף דאָ.
עס ס געגאנגען צו זייַן אָווועררייטינג אַלע פון ​​דעם שטאָפּן,
און דעריבער אויב איר שפּעטער פּרובירן און נוצן די טייַטל אַז איר גאַט איידער,
עס ס ניט געגאנגען צו זייַן די זעלבע ווערט.
עס ס געגאנגען צו האָבן געביטן נאָר ווייַל איר גערופן די פֿונקציע באַז.
[תּלמיד] אבער האט מיר ניט, וואָלט מיר נאָך באַקומען 3?
[באָוודען] אין אַלע ליקעליהאָאָד, איר וואָלט.
אבער איר קענען נישט פאַרלאָזנ אויף וואָס. C נאָר זאגט אַנדיפיינד נאַטור.
>> [תּלמיד] אָה, עס טוט. אָוקיי.
אַזוי ווען איר ווילן צו צוריקקומען אַ טייַטל, דאָס איז ווו מאַללאָק קומט אין נוצן.
איך בין שרייבן פאקטיש נאָר צוריקקומען מאַללאָק (3 * סיזעאָף (ינט)).
מיר וועט גיין איבער מאַללאָק מער אין אַ רגע, אָבער דער געדאַנק פון מאַללאָק איז אַלע פון ​​דיין היגע וועריאַבאַלז
שטענדיק גיין אויף די אָנלייגן.
עפּעס אַז ס מאַללאָסעד גייט אויף די קופּע, און עס וועט אויף אייביק און שטענדיק זייַן אויף די קופּע
ביז איר בפירוש פֿרייַ עס.
אַזוי דעם מיטל אַז ווען איר מאַללאָק עפּעס, עס ס געגאנגען צו בלייַבנ לעבן נאָך די פֿונקציע קערט.
[תּלמיד] וועט עס בלייַבנ לעבן נאָך די פּראָגראַם סטאַפּס פליסנדיק? >> נומ
אָוקיי, אַזוי עס ס געגאנגען צו זייַן דאָרט ביז די פּראָגראַם איז אַלע דער וועג געטאן פליסנדיק. >> יא.
מיר קענען גיין איבער פרטים פון וואָס כאַפּאַנז ווען די פּראָגראַם סטאַפּס פליסנדיק.
איר זאל דאַרפֿן צו דערמאָנען מיר, אָבער אַז איז אַ באַזונדער זאַך לעגאַמרע.
[תּלמיד] אזוי מאַללאָק קריייץ אַ טייַטל? >> יאָ.
מאַללאָק - >> [תּלמיד] איך טראַכטן מאַללאָק דעזיגנייץ אַ בלאָק פון זכּרון אַז אַ טייַטל קענען נוצן.
[באָוודען] איך ווילן אַז דיאַגראַמע ווידער. >> [תּלמיד] אזוי דעם פֿונקציע אַרבעט, כאָטש?
[תּלמיד] יאָ, מאַללאָק דעזיגנייץ אַ בלאָק פון זכּרון אַז איר קענען נוצן,
און דעמאָלט עס קערט דער אַדרעס פון דער ערשטער בלאָק פון וואָס זכּרון.
>> [באָוודען] יאָ. אַזוי ווען איר מאַללאָק, איר ניטאָ גראַבינג עטלעכע בלאָק פון זכּרון
אַז ס דערווייַל אין די קופּע.
אויב די קופּע איז אויך קליין, דעמאָלט דער קופּע איז נאָר געגאנגען צו וואַקסן, און עס וואקסט אין דעם ריכטונג.
אַזוי לאָזן ס זאָגן די קופּע איז אויך קליין.
דעמאָלט עס ס וועגן צו וואַקסן אַ קליין ביסל און צוריקקומען אַ טייַטל צו דעם בלאָק וואָס נאָר געוואקסן.
ווען איר פֿרייַ שטאָפּן, איר ניטאָ מאכן מער אָרט אין דער קופּע,
אַזוי דעמאָלט אַ שפּעטער רופן צו מאַללאָק קענען רייוס אַז זכּרון אַז איר האט פריער באפרייט.
די וויכטיק זאַך וועגן מאַללאָק און פּאָטער איז וואָס עס גיט איר גאַנץ קאָנטראָל
איבער די לעבן פון די זכּרון בלאַקס.
גלאבאלע וועריאַבאַלז ביסט שטענדיק לעבעדיק.
היגע וועריאַבאַלז ביסט לעבעדיק ין זייער פאַרנעם.
ווי באַלד ווי איר גיין פאַרגאַנגענהייַט אַ געגרייַזלט בראַסע, די היגע וועריאַבאַלז זענען טויט.
מאַללאָסעד זכּרון איז לעבעדיק ווען איר ווילן עס צו זייַן לעבעדיק
און דעמאָלט איז באפרייט ווען איר זאָגן עס צו זייַן באפרייט.
יענע זענען פאקטיש דער בלויז 3 טייפּס פון זכּרון, טאַקע.
עס ס אָטאַמאַטיק זכּרון אַדמיניסטראַציע, וואָס איז די אָנלייגן.
דאס פּאַסירן פֿאַר איר אויטאָמאַטיש.
ווען איר זאָגן ינט X, זכּרון איז אַלאַקייטיד פֿאַר ינט X.
ווען X גייט אויס פון פאַרנעם, זכּרון איז ריקליימד פֿאַר X.
דעמאָלט דאָרט ס דינאַמיש זכּרון אַדמיניסטראַציע, וואָס איז וואָס מאַללאָק איז,
וואָס איז ווען איר האָבן קאָנטראָל.
איר דינאַמיקאַללי באַשליסן ווען זכּרון זאָל און זאָל נישט זייַן אַלאַקייטיד.
און דעמאָלט דאָרט ס סטאַטיק, וואָס נאָר מיטל אַז עס לעבן אויף אייביק,
וואָס איז וואָס גלאבאלע וועריאַבאַלז זענען.
זיי ניטאָ נאָר שטענדיק אין זכּרון.
>> שאלות?
[תּלמיד] קען איר דעפינירן אַ בלאָק נאָר דורך ניצן געגרייַזלט ברייסאַז
אָבער נישט ווייל צו האָבן אַן אויב סטאַטעמענט אָדער אַ בשעת סטאַטעמענט אָדער עפּעס ווי וואָס?
איר קענען דעפינירן אַ בלאָק ווי אין אַ פֿונקציע, אָבער וואָס האט געגרייַזלט ברייסאַז אויך.
[תּלמיד] אזוי איר קענען ניט נאָר האָבן ווי אַ טראַפ פּאָר פון געגרייַזלט ברייסאַז אין דיין קאָד
וואָס האָבן היגע וועריאַבאַלז? >> יא, איר קענען.
ין פון ינט באַר מיר קען האָבן {ינט י = 3;}.
אַז ס געמיינט צו זייַן רעכט דאָ.
אבער אַז גאָר דיפיינז דער פאַרנעם פון ינט י.
נאָך וואָס רגע געגרייַזלט בראַסע, י קענען ניט זייַן געניצט ענימאָר.
איר כּמעט קיינמאָל טאָן אַז, כאָטש.
געטינג צוריק צו וואָס כאַפּאַנז ווען אַ פּראָגראַם ענדס,
דאָרט ס מין פון אַ מיסקאַנסעפּשאַן / העלפט ליגן אַז מיר געבן אין סדר צו נאָר מאַכן דאס גרינגער.
מיר זאָגן איר, אז ווען איר אַלאַקייט זכּרון
איר ניטאָ אַלאַקייטינג עטלעכע פּייַדע פון ​​באַראַן פֿאַר אַז בייַטעוודיק.
אבער איר ניטאָ ניט טאַקע גלייַך רירנדיק באַראַן אלץ אין דיין מגילה.
אויב איר טראַכטן פון עס, ווי איך געצויגן -
און פאקטיש, אויב איר גיין דורך אין גדב איר וועט זען די זעלבע זאַך.
ראַגאַרדלאַס פון ווי פילע מאל איר לויפן דיין פּראָגראַם אָדער וואָס פּראָגראַם איר ניטאָ פליסנדיק,
די אָנלייגן איז שטענדיק געגאנגען צו אָנהייב -
איר ניטאָ שטענדיק געגאנגען צו זען וועריאַבאַלז אַרום אַדרעס אָקסבפפפף עפּעס.
עס ס יוזשאַוואַלי ערגעץ אין אַז געגנט.
אבער ווי קענען 2 מגילה עפשער האָבן פּוינטערז צו דער זעלביקער זכּרון?
[תּלמיד] עס ס עטלעכע אַרביטראַריש באַצייכענונג פון ווו אָקסבפפף איז געמיינט צו זייַן אויף דער באַראַן
וואָס קענען פאקטיש זייַן אין פאַרשידענע ערטער דיפּענדינג אויף ווען דער פֿונקציע האט גערופן.
יאָ. די טערמין איז ווירטואַל זכּרון.
דער געדאַנק איז אַז יעדער איין פּראָצעס, יעדער איין פּראָגראַם וואָס איז פליסנדיק אויף דיין קאָמפּיוטער
האט זייַן אייגן - לאָזן ס יבערנעמען 32 ביטן - גאָר פרייַ אַדרעס פּלאַץ.
דאס איז די אַדרעס פּלאַץ.
עס האט זייַן אייגן גאָר פרייַ 4 גיגאבייט צו נוצן.
>> אַזוי אויב איר לויפן 2 מגילה סיימאַלטייניאַסלי, דעם פּראָגראַם זעט 4 גיגאבייט צו זיך,
דעם פּראָגראַם זעט 4 גיגאבייט צו זיך,
און עס ס אוממעגלעך פֿאַר דעם פּראָגראַם צו דערעפערענסע אַ טייַטל
און סוף אַרויף מיט זכּרון פון דעם פּראָגראַם.
און וואָס ווירטואַל זכּרון איז איז אַ מאַפּינג פון אַ פּראַסעסאַז אַדרעס אָרט
צו פאַקטיש זאכן אויף באַראַן.
אַזוי עס ס אַרויף צו דיין אַפּערייטינג סיסטעם צו וויסן אַז,
היי, ווען דעם באָכער דערעפערענסעס טייַטל אָקסבפפף, אַז טאַקע מיטל
אַז ער וויל באַראַן ביטע 1000,
וועראַז אויב דעם פּראָגראַם דערעפערענסעס אָקסבפפף, ער טאַקע וויל באַראַן ביטע 10000.
זיי קענען זייַן אַרביטרעראַלי ווייַט באַזונדער.
דאס איז אַפֿילו אמת פון זאכן ין אַ איין פּראַסעסאַז אַדרעס פּלאַץ.
אַזוי ווי עס זעט אַלע 4 גיגאבייט צו זיך, אָבער לאָזן ס זאָגן -
[תּלמיד] טוט יעדער איין פּראָצעס -
זאל ס זאָגן איר האָבן אַ קאָמפּיוטער מיט בלויז 4 גיגאבייט פון באַראַן.
טוט יעדער איין פּראָצעס זען די גאנצע 4 גיגאבייט? >> יא.
אבער די 4 גיגאבייט עס זעט איז אַ ליגן.
עס ס נאָר עס מיינט עס האט אַלע דעם זכּרון ווייַל עס טוט נישט וויסן קיין אנדערע פּראָצעס יגזיסץ.
עס וועט נאָר נוצן ווי פיל זכּרון ווי עס פאקטיש דאַרף.
די אַפּערייטינג סיסטעם איז נישט געגאנגען צו געבן באַראַן צו דעם פּראָצעס
אויב עס ס ניט ניצן קיין זכּרון אין דעם גאַנצן געגנט.
עס ס ניט געגאנגען צו געבן עס זכּרון פֿאַר אַז געגנט.
אבער דער געדאַנק איז וואָס - איך בין טריינג צו טראַכטן פון - איך קען נישט טראַכטן פון אַ אַנאַלאַדזשי.
אַנאַלאָגיעס זענען שווער.
איינער פון די ענינים פון ווירטואַל זכּרון אָדער איינער פון די זאכן עס ס סאַלווינג
איז אַז פּראַסעסאַז זאָל זייַן גאָר ניט וויסנדיק פון איין אנדערן.
און אַזוי איר קענען שרייַבן קיין פּראָגראַם אַז נאָר דערעפערענסעס קיין טייַטל,
ווי נאָר שרייַבן אַ פּראָגראַם וואָס זאגט * (אָקס1234),
און אַז ס דערעפערענסינג זכּרון אַדרעס 1234.
>> אבער עס ס אַרויף צו די אַפּערייטינג סיסטעם צו דעמאָלט איבערזעצן וואָס 1234 מיטל.
אַזוי אויב 1234 כאַפּאַנז צו זייַן אַ גילטיק זכּרון אַדרעס פֿאַר דעם פּראָצעס,
ווי עס ס אויף דעם אָנלייגן אָדער עפּעס, דעמאָלט דעם וועט צוריקקומען די ווערט פון וואָס זכּרון אַדרעס
ווי ווייַט ווי דער פּראָצעס ווייסט.
אבער אויב 1234 איז ניט אַ גילטיק אַדרעס, ווי עס כאַפּאַנז צו לאַנד
אין עטלעכע קליין שטיק פון זכּרון דאָ וואָס איז ווייַטער פון דעם אָנלייגן און ווייַטער פון די קופּע
און איר האָט נישט טאַקע געוויינט אַז, דעמאָלט אַז ס ווען איר באַקומען דאס ווי סעגפאַולץ
ווייַל איר ניטאָ רירנדיק זכּרון אַז איר זאָל נישט זייַן רירנדיק.
דאס איז אויך אמת -
א 32-ביסל סיסטעם, 32 ביטן מיטל איר האָבן 32 ביטן צו דעפינירן אַ זכּרון אַדרעס.
עס ס וואָס פּוינטערז זענען 8 ביטעס ווייַל 32 ביטן זענען 8 ביטעס - אָדער 4 ביטעס.
פּאָינטערס ביסט 4 ביטעס.
אַזוי ווען איר זען אַ טייַטל ווי אָקסבפפפפף, וואָס איז -
ין קיין געגעבן פּראָגראַם איר קענען נאָר בויען קיין אַרביטראַריש טייַטל,
ערגעץ פון אָקס0 צו אָקס 8 עפס - פפפפפפפף.
[תּלמיד] האט ניט איר זאָגן זיי ניטאָ 4 ביטעס? >> יאָ.
[תּלמיד] דערנאך יעדער ביטע וועט האָבן - >> [באָוודען] העקסאַדעסימאַל.
העקסאַדעסימאַל - 5, 6, 7, 8. אַזוי פּוינטערז איר ניטאָ געגאנגען צו שטענדיק זען אין העקסאַדעסימאַל.
עס ס נאָר ווי מיר קלאַסיפיצירן פּוינטערז.
יעדער 2 דידזשאַץ פון העקסאַדעסימאַל איז 1 ביטע.
אַזוי דאָרט ס געגאנגען צו זייַן 8 העקסאַדעסימאַל דידזשאַץ פֿאַר 4 ביטעס.
אַזוי יעדער איין טייַטל אויף אַ 32-ביסל סיסטעם איז געגאנגען צו זייַן 4 ביטעס,
וואָס מיטל וואָס אין דיין פּראָצעס איר קענען בויען קיין אַרביטראַריש 4 ביטעס
און מאַכן אַ טייַטל אויס פון אים,
וואָס מיטל אַז ווי ווייַט ווי עס ס אַווער, עס קענען אַדרעס אַ גאנצע 2 צו די 32 ביטעס פון זכּרון.
אפילו כאָטש עס טוט ניט טאַקע האָבן צוטריט צו אַז,
אַפֿילו אויב אייער קאָמפּיוטער נאָר האט 512 מעגאבייט, עס מיינט עס האט אַז פיל זכּרון.
און די אַפּערייטינג סיסטעם איז קלוג גענוג אַז עס וועט נאָר אַלאַקייט וואָס איר פאקטיש דאַרפֿן.
עס טוט נישט נאָר גיין, אָה, אַ נייַ פּראָצעס: 4 גיגס.
>> יאָ. >> [תּלמיד] וואָס טוט דער אָקס מיינען? פארוואס טאָן איר שרייַבן עס?
עס ס נאָר די סימבאָל פֿאַר העקסאַדעסימאַל.
ווען איר זען אַ נומער אָנהייבן מיט אָקס, די סאַקסעסיוו זאכן זענען העקסאַדעסימאַל.
[תּלמיד] איר זענען יקספּליינינג וועגן וואָס כאַפּאַנז ווען אַ פּראָגראַם ענדס. >> יא.
וואָס כאַפּאַנז ווען אַ פּראָגראַם ענדס איז די אַפּערייטינג סיסטעם
נאָר ירייסיז די מאַפּפּינגס אַז עס האט פֿאַר די ווענדט, און אַז ס עס.
די אַפּערייטינג סיסטעם קענען איצט נאָר געבן אַז זכּרון צו אן אנדער פּראָגראַם צו נוצן.
[תּלמיד] אָוקיי.
אַזוי ווען איר אַלאַקייט עפּעס אויף די קופּע אָדער די אָנלייגן אָדער גלאבאלע וועריאַבאַלז אָדער עפּעס,
זיי אַלע נאָר פאַרשווינדן ווי באַלד ווי די פּראָגראַם ענדס
ווייַל די אַפּערייטינג סיסטעם איז איצט פֿרייַ צו געבן אַז זכּרון צו קיין אנדערע פּראָצעס.
[תּלמיד] אפילו כאָטש עס זענען מיסטאָמע נאָך וואַלועס געשריבן אין? >> יאָ.
די וואַלועס ביסט מסתּמא נאָך דאָרט.
עס ס נאָר עס ס געגאנגען צו זייַן שווער צו באַקומען בייַ זיי.
עס ס פיל מער שווער צו באַקומען בייַ זיי ווי עס איז צו באַקומען אין אַ אויסגעמעקט טעקע
ווייַל די אויסגעמעקט טעקע מין פון זיצט דאָרט פֿאַר אַ לאַנג צייַט און דער שווער פאָר איז אַ פּלאַץ ביגער.
אַזוי עס ס געגאנגען צו אָווועררייט פאַרשידענע טיילן פון זכּרון
איידער עס כאַפּאַנז צו אָווועררייט דער פּייַדע פון ​​זכּרון אַז אַז טעקע געניצט צו זייַן בייַ.
אבער הויפּט זכּרון, באַראַן, איר ציקל דורך אַ פּלאַץ פאַסטער,
אַזוי עס ס געגאנגען צו זייער ראַפּאַדלי זייַן אָוווערריטאַן.
שאלות אויף דעם אָדער עפּעס אַנדערש?
[תּלמיד] איך האָבן פראגעס וועגן אַ אַנדערש טעמע. >> אָוקיי.
טוט ווער עס יז האָבן שאלות אויף דעם?
>> אָוקיי. פאַרשידענע טעמע. >> [תּלמיד] אָוקיי.
איך איז געגאנגען דורך עטלעכע פון ​​די פיר טעסץ,
און אין איינער פון זיי עס איז געווען גערעדט וועגן די סיזעאָף
און דעם ווערט אַז עס קערט אָדער פאַרשידענע בייַטעוודיק טייפּס. >> יא.
און עס האט געזאגט אַז ביידע ינט און לאַנג ביידע צוריקקומען 4, אַזוי זיי ניטאָ ביידע 4 ביטעס לאַנג.
איז עס קיין חילוק צווישן אַ ינט און אַ לאַנג, אָדער איז עס די זעלבע זאַך?
יא, עס איז אַ חילוק.
די C נאָרמאַל -
איך בין מיסטאָמע געגאנגען צו באַלאַגאַן אַרויף.
די C נאָרמאַל איז פּונקט ווי וואָס C איז, דער באַאַמטער דאַקיומענטיישאַן פון סי
דאס איז וואָס עס זאגט.
אַזוי די C נאָרמאַל נאָר זאגט אַז אַ טשאַר וועט אויף אייביק און שטענדיק זייַן 1 ביטע.
אַלץ נאָך וואָס - אַ קורץ איז שטענדיק נאָר דיפיינד ווי זייַענדיק גרעסער ווי אָדער גלייַך צו אַ טשאַר.
דאס זאל זייַן שטרענג גרעסער ווי, אָבער נישט positive.
אַ ינט איז נאָר דיפיינד ווי זייַענדיק גרעסער ווי אָדער גלייַך צו אַ קורץ.
און אַ לאַנג איז נאָר דיפיינד ווי זייַענדיק גרעסער ווי אָדער גלייַך צו אַ ינט.
און אַ לאַנג לאַנג איז גרעסער ווי אָדער גלייַך צו אַ לאַנג.
אַזוי דער בלויז זאַך די C נאָרמאַל דיפיינז איז די קאָרעוו אָרדערינג פון אַלץ.
די פאַקטיש סומע פון ​​זכּרון אַז דאס נעמען אַרויף איז בכלל אַרויף צו ימפּלאַמענטיישאַן,
אָבער עס ס שיין געזונט דיפיינד בייַ דעם פונט. >> [תּלמיד] אָוקיי.
אַזוי קורצע הייזלעך זענען כּמעט שטענדיק געגאנגען צו זייַן 2 ביטעס.
ינץ זענען כּמעט שטענדיק געגאנגען צו זייַן 4 ביטעס.
לאַנג לאָנגס זענען כּמעט שטענדיק געגאנגען צו זייַן 8 ביטעס.
און לאָנגס, עס דעפּענדס אויף צי איר ניטאָ ניצן אַ 32-ביסל אָדער אַ 64-ביסל סיסטעם.
אַזוי אַ לאַנג איז געגאנגען צו שטימען צו דעם טיפּ פון סיסטעם.
אויב איר ניטאָ ניצן אַ 32-ביסל סיסטעם ווי די אַפּפּליאַנסע, עס ס געגאנגען צו זייַן 4 ביטעס.
אויב איר ניטאָ ניצן אַ 64-ביסל ווי אַ פּלאַץ פון פריש קאָמפּיוטערס, עס ס געגאנגען צו זייַן 8 ביטעס.
>> ינץ זענען כּמעט שטענדיק 4 ביטעס בייַ דעם פונט.
לאַנג לאָנגס זענען כּמעט שטענדיק 8 ביטעס.
אין דער פאַרגאַנגענהייַט, ינץ געניצט צו בלויז זייַן 2 ביטעס.
אבער באַמערקן אַז דאָס גאָר סאַטיספייז אַלע פון ​​די באַציונגען פון גרעסער ווי און גלייַך צו.
אַזוי לאַנג איז בישליימעס ערלויבט צו זייַן דער זעלביקער גרייס ווי אַ ינטעגער,
און עס ס אויך ערלויבט צו זייַן דער זעלביקער גרייס ווי אַ לאַנג לאַנג.
און עס פּונקט אַזוי כאַפּאַנז צו זייַן אַז אין 99.999% פון סיסטעמען, עס איז געגאנגען צו זייַן גלייַך צו
אָדער אַ ינט אָדער אַ לאַנג לאַנג. עס נאָר דעפּענדס אויף 32-ביסל אָדער 64-ביסל. >> [תּלמיד] אָוקיי.
אין פלאָוץ, ווי איז די דעצימאַל פונט דעזיגנייטיד אין טערמינען פון ביטן?
ווי ווי ביינערי? >> יאָ.
איר טאָן ניט דאַרפֿן צו וויסן וואָס פֿאַר קס50.
איר טאָן ניט אַפֿילו לערנען אַז אין 61.
איר טאָן ניט לערנען אַז טאַקע אין קיין לויף.
עס ס נאָר אַ פאַרטרעטונג.
איך פאַרגעסן די פּינטלעך ביסל אַלאַטמאַנץ.
דער געדאַנק פון פלאָוטינג פונט איז אַז איר אַלאַקייט אַ ספּעציפיש נומער פון ביטן צו פאָרשטעלן -
בייסיקלי, אַלץ איז אין וויסנשאפטלעכע נאָוטיישאַן.
אַזוי איר אַלאַקייט אַ ספּעציפיש נומער פון ביטן צו פאָרשטעלן די נומער זיך, ווי 1.2345.
איך קענען קיינמאָל פאָרשטעלן אַ נומער מיט מער דידזשאַץ ווי 5.
דעמאָלט איר אויך אַלאַקייט אַ ספּעציפיש נומער פון ביטן אַזוי אַז עס טענדז צו זייַן ווי
איר קענען נאָר גיין אַרויף צו אַ זיכער נומער, ווי אַז ס דער גרעסטער עקספּאָנענט איר קענען האָבן,
און איר קענען נאָר גיין אַראָפּ צו אַ זיכער עקספּאָנענט,
ווי אַז ס דער קלענסטער עקספּאָנענט איר קענען האָבן.
>> איך טאָן ניט געדענקען די פּינטלעך וועג ביטן זענען אַסיינד צו אַלע פון ​​די וואַלועס,
אָבער אַ זיכער נומער פון ביטן זענען דעדאַקייטאַד צו 1.2345,
אן אנדער זיכער נומער פון ביטן זענען דעדאַקייטאַד צו די עקספּאָנענט,
און עס ס נאָר מעגלעך צו פאָרשטעלן אַ עקספּאָנענט פון אַ זיכער גרייס.
[תּלמיד] און אַ טאָפּל? איז אַז ווי אַן עקסטרע לאַנג לאָזנ שווימען? >> יאָ.
עס ס די זעלבע זאַך ווי אַ לאָזנ שווימען חוץ איצט איר ניטאָ ניצן 8 ביטעס אַנשטאָט פון 4 ביטעס.
איצט איר וועט זייַן ביכולת צו נוצן 9 דידזשאַץ אָדער 10 דידזשאַץ,
און דאָס וועט זייַן ביכולת צו גיין אַרויף צו 300 אַנשטאָט פון 100. >> [תּלמיד] אָוקיי.
און פלאָוץ זענען אויך 4 ביטעס. >> יא.
נו, ווידער, עס מיסטאָמע דעפּענדס קוילעלדיק אויף אַלגעמיינע ימפּלאַמענטיישאַן,
אָבער פלאָוץ ביסט 4 ביטעס, דאַבאַלז זענען 8.
דאַבאַלז זענען גערופן טאָפּל ווייַל זיי זענען טאָפּל די גרייס פון פלאָוץ.
[תּלמיד] אָוקיי. און זענען דאָרט טאָפּל דאַבאַלז? >> עס זענען נישט.
איך טראַכטן - >> [תּלמיד] ווי לאַנג לאָנגס? >> יאָ. איך טאָן ניט טראַכטן אַזוי. יא.
[תּלמיד] אויף לעצטע יאָר ס פּרובירן עס איז געווען אַ קשיא וועגן די הויפּט פֿונקציע
ווייל צו זייַן טייל פון דיין פּראָגראַם.
די ענטפער איז געווען אַז עס טוט נישט האָבן צו זייַן טייל פון דיין פּראָגראַם.
אין וואָס סיטואַציע? אַז ס וואָס איך געזען.
[באָוודען] עס מיינט - >> [תּלמיד] וואָס סיטואַציע?
צי איר האָבן דער פּראָבלעם? >> [תּלמיד] יאָ, איך קענען באשטימט ציען עס אַרויף.
עס טוט נישט האָבן צו זייַן, טעקניקלי, אָבער בייסיקלי עס ס געגאנגען צו זייַן.
[תּלמיד] איך געזען איינער אויף אַ אַנדערש יאָר ס.
עס איז געווען ווי אמת אָדער פאָלס: א גילטיק - >> אָה, אַ. C טעקע?
[תּלמיד] אַני. C טעקע מוזן האָבן - [ביידע גערעדט בייַ אַמאָל - אַנינטעלאַדזשאַבאַל]
אָוקיי. אַזוי אַז ס באַזונדער.
>> א. C טעקע נאָר דאַרף צו אַנטהאַלטן פאַנגקשאַנז.
איר קענען צונויפנעמען אַ טעקע אין מאַשין קאָד, ביינערי, וועלכער,
אָן עס זייַענדיק עקסעקוטאַבלע נאָך.
א גילטיק עקסעקוטאַבלע מוזן האָבן אַ הויפּט פֿונקציע.
איר קענען שרייַבן 100 פאַנגקשאַנז אין 1 טעקע אָבער קיין הויפּט
און דעמאָלט צונויפנעמען אַז אַראָפּ צו ביינערי,
דעמאָלט איר שרייַבן אן אנדער טעקע אַז נאָר האט הויפּט אָבער עס רופט אַ בינטל פון די פאַנגקשאַנז
אין דעם ביינערי טעקע איבער דאָ.
און אַזוי ווען איר ניטאָ מאכן די עקסעקוטאַבלע, אַז ס וואָס דער לינקער טוט
איז עס קאַמביינז די 2 ביינערי טעקעס אין אַ עקסעקוטאַבלע.
אַזוי אַ. C טעקע טוט נישט דאַרפֿן צו האָבן אַ הויפּט פֿונקציע אין אַלע.
און אויף גרויס קאָד באַסעס איר וועט זען טויזנטער פון. C טעקעס און 1 הויפּט טעקע.
מער שאלות?
[תּלמיד] עס איז געווען אן אנדער קשיא.
עס האט מאַכן איז אַ קאַמפּיילער. אמת אָדער פאָלס?
און דער ענטפער איז פאַלש, און איך פארשטאנען וואָס עס ס ניט ווי קלאַנג.
אבער וואָס טאָן מיר רופן מאַכן אויב עס ס נישט?
מאַכן איז בייסיקלי נאָר - איך קענען זען פּונקט וואָס עס רופט עס.
אבער עס נאָר לויפט קאַמאַנדז.
מאַכן.
איך קענען ציען דעם אַרויף. יאָ.
אָה, יאָ. מאַכן אויך טוט וואָס.
דאס זאגט דער ציל פון דעם מאַכן נוצן איז צו באַשליסן אויטאָמאַטיש
וואָס ברעקלעך פון אַ גרויס פּראָגראַם דאַרפֿן צו זייַן רעקאָמפּילעד
און אַרויסגעבן די קאַמאַנדז צו רעקאָמפּילע זיי.
איר קענען מאַכן מאַכן טעקעס וואָס זענען לעגאַמרע ריזיק.
מאַכן קוקט אין די צייַט סטאַמפּס פון טעקעס און, ווי מיר געזאגט פריער,
איר קענען צונויפנעמען יחיד טעקעס אַראָפּ, און עס ס נישט ביז איר באַקומען צו דער לינקער
אַז זיי ניטאָ שטעלן צוזאַמען אין אַ עקסעקוטאַבלע.
אַזוי אויב איר האָט 10 אַנדערש טעקעס און איר מאַכן אַ טוישן צו 1 פון זיי,
דעמאָלט וואָס מאַכן איז געגאנגען צו טאָן איז נאָר רעקאָמפּילע אַז 1 טעקע
און דעמאָלט רעלינק אַלץ צוזאַמען.
אבער עס ס פיל דאַמער ווי אַז.
עס ס אַרויף צו איר צו גאָר דעפינירן וואָס אַז ס וואָס עס זאָל זייַן טאן.
עס דורך פעליקייַט האט די פיייקייַט צו דערקענען דעם צייַט שטעמפּל שטאָפּן,
אָבער איר קענען שרייַבן אַ מאַכן טעקע צו טאָן עפּעס.
איר קענען שרייַבן אַ מאַכן טעקע אַזוי אַז ווען איר טיפּ מאַכן עס נאָר סי ס צו אן אנדער דירעקטארי.
איך איז געטינג פראַסטרייטאַד ווייַל איך שטיפט אַלץ ין פון מיין אַפּפּליאַנסע
און דעמאָלט איך קוק די פּדף פון די מעק.
>> אַזוי איך גיין צו פינדער און איך קענען טאָן גיין, פאַרבינדן צו סערווירער,
און די סערווירער איך פאַרבינדן צו איז מיין אַפּפּליאַנסע, און דעמאָלט איך עפענען זיך די פּדף
אַז געץ צונויפגעשטעלט דורך לאַטעקס.
אבער איך איז געטינג פראַסטרייטאַד ווייַל יעדער איין מאָל איך דארף צו דערפרישן די פּדף,
איך האט צו צייכענען עס צו אַ ספּעציפיש Directory אַז עס קען צוטריט
און עס איז געטינג אַנויינג.
אַזוי אַנשטאָט איך געשריבן אַ מאַכן טעקע, וואָס איר האָט צו דעפינירן ווי עס מאכט דאס.
ווי איר מאַכן אין דעם איז פּדף לאַטעקס.
פּונקט ווי קיין אנדערע מאַכן טעקע - אָדער איך טרעפן איר האָבן נישט געזען דעם מאַכן טעקעס,
אָבער מיר האָבן אין די אַפּפּליאַנסע אַ גלאבאלע מאַכן טעקע אַז נאָר זאגט,
אויב איר זענט קאַמפּיילינג אַ C טעקע, ניצן קלאַנג.
און אַזוי דאָ אין מיין מאַכן טעקע אַז איך מאַכן איך זאָגן,
דעם טעקע איר ניטאָ געגאנגען צו ווילן צו צונויפנעמען מיט פּדף לאַטעקס.
און אַזוי עס ס פּדף לאַטעקס אַז ס טאן די קאַמפּיילינג.
מאַכן איז נישט קאַמפּיילינג. עס ס נאָר פליסנדיק די קאַמאַנדז אין די סיקוואַנס איך ספּעסאַפייד.
אַזוי עס לויפט פּדף לאַטעקס, עס קאפיעס עס צו די דירעקטארי איך ווילן עס צו זייַן קאַפּיד צו,
עס סי 'ס צו די דירעקטארי און טוט אנדערע זאכן,
אָבער אַלע עס טוט איז דערקענען ווען אַ טעקע ענדערונגען,
און אויב עס ענדערונגען, דעמאָלט עס וועט לויפן די קאַמאַנדז אַז עס ס געמיינט צו לויפן
ווען דער טעקע ענדערונגען. >> [תּלמיד] אָוקיי.
איך טאָן ניט וויסן ווו די גלאבאלע מאַכן טעקעס זענען פֿאַר מיר צו טשעק עס אויס.
אנדערע שאלות? עפּעס פון פאַרגאַנגענהייַט קוויזיז? קיין טייַטל זאכן?
עס זענען סאַטאַל זאכן מיט פּוינטערז ווי -
איך בין נישט געגאנגען צו זייַן ביכולת צו געפֿינען אַ ויספרעג קשיא אויף אים -
אָבער פּונקט ווי דעם סאָרט פון זאַך.
מאַכט זיכער איר פֿאַרשטיין אַז ווען איך זאָגן ינט * X * י -
דאס איז נישט פּונקט עפּעס דאָ, איך טרעפן.
אבער ווי * X * י, יענע זענען 2 וועריאַבאַלז וואָס זענען אויף די סטאַק.
ווען איך זאָגן X = מאַללאָק (סיזעאָף (ינט)), X איז נאָך אַ בייַטעוודיק אויף דעם אָנלייגן,
מאַללאָק איז עטלעכע בלאָק איבער אין די קופּע, און מיר רע בעת X פונט צו דער קופּע.
>> אַזוי עפּעס אויף דעם אָנלייגן פונקטן צו דער קופּע.
ווען איר מאַללאָק עפּעס, איר ניטאָ ינעוואַטאַבלי סטאָרינג עס ין פון אַ טייַטל.
אַזוי אַז טייַטל איז אויף דעם אָנלייגן, די מאַללאָסעד בלאָק איז אויף די קופּע.
א פּלאַץ פון מענטשן באַקומען צעמישט און זאָגן ינט * X = מאַללאָק; X איז אויף די קופּע.
נומ וואָס X פונקטן צו איז אויף די קופּע.
X זיך איז אויף דעם אָנלייגן, סייַדן פֿאַר וועלכער סיבה איר האָבן X זייַן אַ גלאבאלע בייַטעוודיק,
אין וואָס פאַל עס כאַפּאַנז צו זייַן אין אן אנדער געגנט פון זכּרון.
אַזוי בעכעסקעם שפּור, די קעסטל און פייַל דייאַגראַמז זענען שיין פּראָסט פֿאַר די ויספרעג.
אָדער אויב עס ס 'ניט אויף ויספרעג 0, עס וועט זייַן אויף ויספרעג 1.
איר זאָל וויסן אַלע פון ​​די, דעם טריט אין קאַמפּיילינג
זינט איר האט צו ענטפֿערן פראגעס אויף יענע. יא.
[תּלמיד] קען מיר גיין איבער יענע טריט - >> זיכער.
איידער טריט און קאַמפּיילינג מיר האָבן פּרעפּראָסעססינג,
קאַמפּיילינג, אַסעמבאַלינג, און פֿאַרבינדונג.
פּרעפּראָסעססינג. וואָס טוט אַז טאָן?
עס איז די יזיאַסט שריט אין - געזונט, ניט ווי -
וואָס טוט נישט מיינען עס זאָל זייַן קלאָר ווי דער טאָג, אָבער עס ס די יזיאַסט שריט.
איר גייז קען מאַכשער עס אליין. יאָ.
[תּלמיד] נעמען וואָס איר האָט אין דיין כולל ווי דעם און עס קאפיעס און דעריבער אויך דיפיינז.
עס קוקט פֿאַר זאכן ווי # אַרייַננעמען און # דעפינירן,
און עס נאָר קאפיעס און פּאַסטעס וואָס יענע פאקטיש מיינען.
אַזוי ווען איר זאָגן # אַרייַננעמען קס50.ה, די פּרעפּראָסעססאָר איז קאַפּיינג און פּאַסטינג קס50.ה
אין וואָס שורה.
ווען איר זאָגן # דעפינירן X צו זייַן 4, די פּרעפּראָסעססאָר גייט דורך די גאנצע פּראָגראַם
און ריפּלייסיז אַלע ינסטאַנסיז פון X מיט 4.
אַזוי די פּרעפּראָסעססאָר נעמט אַ גילטיק C טעקע און אַוטפּוץ אַ גילטיק C טעקע
ווו זאכן האָבן שוין קאַפּיד און פּייסטיד.
אַזוי איצט קאַמפּיילינג. וואָס טוט אַז טאָן?
[תּלמיד] עס גייט פון C צו ביינערי.
>> [באָוודען] עס טוט נישט גיין אַלע די וועג צו ביינערי.
[תּלמיד] צו מאַשין קאָד דעמאָלט? >> עס ס נישט מאַשין קאָד.
[תּלמיד] אַסעמבלי? >> אַסעמבלי.
עס גייט צו אַסעמבלי איידער עס גייט אַלע די וועג צו C קאָד,
און רובֿ שפּראַכן טאָן עפּעס ווי דעם.
קלייַבן קיין הויך-מדרגה שפּראַך, און אויב איר ניטאָ געגאנגען צו צונויפנעמען עס,
עס ס מסתּמא צו צונויפנעמען אין טריט.
ערשטער עס ס געגאנגען צו צונויפנעמען פּיטהאָן צו C, דעמאָלט עס ס געגאנגען צו צונויפנעמען C צו אַסעמבלי,
און דעמאָלט אַסעמבלי איז געגאנגען צו באַקומען איבערגעזעצט צו ביינערי.
אַזוי קאַמפּיילינג איז געגאנגען צו ברענגען עס פון C צו אַסעמבלי.
די וואָרט קאַמפּיילינג יוזשאַוואַלי מיטל געבראכט עס פון אַ העכער מדרגה
צו אַ נידעריקער מדרגה פּראָגראַממינג שפּראַך.
אַזוי דאָס איז דער בלויז שריט אין זאַמלונג ווו איר אָנהייבן מיט אַ הויך-מדרגה שפּראַך
און סוף אַרויף אין אַ נידעריק-מדרגה שפּראַך, און אַז ס וואָס דער שריט איז גערופן קאַמפּיילינג.
[תּלמיד] בעת קאַמפּיילינג, לאָזן 'ס זאָגן אַז איר ווע געטאן # אַרייַננעמען קס50.ה.
וועט דער קאַמפּיילער רעקאָמפּילע די קס50.ה, ווי די פאַנגקשאַנז וואָס זענען אין דאָרט,
און איבערזעצן אַז אין אַסעמבלי קאָד ווי געזונט,
אָדער וועט עס נאָכמאַכן און פּאַפּ עפּעס אַז ס 'שוין פאַר - אַסעמבלי?
קס50.ה וועט שיין פיל קיינמאָל סוף אַרויף אין אַסעמבלי.
שטאָפּן ווי פונקציאָנירן פּראָוטאַטייפּס און דאס זענען נאָר פֿאַר איר צו זייַן אָפּגעהיט.
עס געראַנטיז אַז דער קאַמפּיילער קענען קאָנטראָלירן דאס ווי איר ניטאָ פאַך פאַנגקשאַנז
מיט די רעכט צוריקקומען טייפּס און די רעכט טענות און שטאָפּן.
>> אַזוי קס50.ה וועט זייַן פּרעפּראָסעססעד אין דער טעקע, און דעריבער ווען עס ס קאַמפּיילינג
עס ס בייסיקלי ארלנגעווארפן אַוועק נאָך עס מאכט זיכער אַז אַלץ איז זייַענדיק גערופן ריכטיק.
אבער די פאַנגקשאַנז דיפיינד אין די קס50 ביבליאָטעק, וואָס זענען באַזונדער פון קס50.ה,
יענע וועט נישט זייַן סעפּעראַטלי צונויפגעשטעלט.
וואָס וועט פאקטיש קומען אַראָפּ אין דער פֿאַרבינדונג שריט, אַזוי מיר וועט באַקומען צו אַז אין אַ רגע.
אבער ערשטער, וואָס איז אַסעמבאַלינג?
[תּלמיד] אַסעמבלי צו ביינערי? >> יאָ.
אַסעמבאַלינג.
מיר טאָן ניט רופן עס קאַמפּיילינג ווייַל אַסעמבלי איז שיין פיל אַ ריין איבערזעצונג פון ביינערי.
עס איז זייער קליין לאָגיק אין געגאנגען פון אַסעמבלי צו ביינערי.
עס ס נאָר ווי קוקן אַרויף אין אַ טיש, אָה, מיר האָבן דעם לימעד;
אַז קאָראַספּאַנדז צו ביינערי 01,110.
און אַזוי די טעקעס אַז אַסעמבאַלינג בכלל אַוטפּוץ זענען. אָ טעקעס.
און. אָ טעקעס ביסט וואָס מיר האבן געזאגט פריער,
ווי אַ טעקע טוט נישט דאַרפֿן צו האָבן אַ הויפּט פֿונקציע.
קיין טעקע קענען זייַן צונויפגעשטעלט אַראָפּ צו אַ. אָ טעקע ווי לאַנג ווי עס ס אַ גילטיק C טעקע.
עס קענען זייַן צונויפגעשטעלט אַראָפּ צו. אָ.
איצט, פֿאַרבינדונג איז וואָס פאקטיש ברענגט אַ בינטל פון. אָ טעקעס און ברענגט זיי צו אַ עקסעקוטאַבלע.
און אַזוי וואָס פֿאַרבינדונג טוט איז איר קענען טראַכטן פון די קס50 ביבליאָטעק ווי אַ. אָ טעקע.
עס איז אַ שוין צונויפגעשטעלט ביינערי טעקע.
און אַזוי ווען איר צונויפנעמען דיין טעקע, דיין העללאָ.ק, וואָס רופט געצטרינג,
העללאָ.ק געץ צונויפגעשטעלט אַראָפּ צו העללאָ.אָ,
העללאָ.אָ איז איצט אין ביינערי.
עס ניצט געצטרינג, אַזוי עס דאַרף צו גיין איבער צו קס50.אָ,
און דער לינקער סמאָאָשעס זיי צוזאַמען און קאפיעס געצטרינג אין דעם טעקע
און קומט אויס מיט אַ עקסעקוטאַבלע וואָס האט אַלע פאַנגקשאַנז עס דאַרף.
אַזוי קס50.אָ איז נישט פאקטיש אַן אָ טעקע, אָבער עס ס נאָענט גענוג אַז עס איז קיין פונדאַמענטאַל חילוק.
אַזוי פֿאַרבינדונג נאָר ברענגט אַ בינטל פון טעקעס צוזאַמען
אַז סעפּעראַטלי אַנטהאַלטן אַלע פון ​​די פאַנגקשאַנז איך דאַרפֿן צו נוצן
און קריייץ די עקסעקוטאַבלע וואָס וועט פאקטיש לויפן.
>> און אַזוי אַז ס אויך וואָס מיר האבן געזאגט פריער
ווו איר קענען האָבן 1000. C טעקעס, איר צונויפנעמען זיי אַלע צו. אָ טעקעס,
וואָס וועט מיסטאָמע נעמען אַ בשעת, דעמאָלט איר טוישן 1. C טעקע.
איר נאָר דאַרפֿן צו רעקאָמפּילע אַז 1. C טעקע און דעמאָלט רעלינק אַלץ אַנדערש,
לינק אַלץ צוריק צוזאַמען.
[תּלמיד] ווען מיר רע פֿאַרבינדונג מיר שרייַבן לקס50?
יאָ, אַזוי-לקס50. אַז פאָן סיגנאַלז צו דער לינקער אַז איר זאָל זייַן פֿאַרבינדונג אין אַז ביבליאָטעק.
שאלות?
האָבן מיר ניטאָ איבער ביינערי אנדערע ווי אַז 5 סעקונדעס אין דער ערשטער לעקציע?
איך טאָן ניט טראַכטן אַזוי.
איר זאָל וויסן אַלע פון ​​די גרויס אָס אַז מיר ווע ניטאָ איבער,
און איר זאָל זייַן ביכולת צו, אויב מיר געגעבן איר אַ פֿונקציע,
איר זאָל זייַן ביכולת צו זאָגן עס ס גרויס אָ, בעערעך. אָדער געזונט, גרויס אָ איז פּראָסט.
אַזוי אויב איר זען נעסטעד פֿאַר לופּס לופּינג איבער די זעלבע נומער פון זאכן,
ווי ינט איך, איך <N; ינט דזש, דזש > [תּלמיד] N סקווערד. >> עס טענדז צו זייַן N סקווערד.
אויב איר האָט דרייַיק נעסטעד, עס טענדז צו זייַן N קיובד.
אַזוי אַז סאָרט פון זאַך איר זאָל זייַן ביכולת צו פונט אויס מיד.
איר דאַרפֿן צו וויסן ינסערשאַן סאָרט און בלאָז סאָרט און צונויפגיסן סאָרט און אַלע פון ​​יענע.
עס ס גרינגער צו פֿאַרשטיין וואָס זיי זענען יענע N סקווערד און N קלאָץ ען און אַלע פון ​​וואָס
ווייַל איך טראַכטן עס איז געווען אויף אַ ויספרעג איין יאָר ווו מיר בייסיקלי געגעבן איר
אַ ימפּלאַמענטיישאַן פון בלאָז סאָרט און געזאגט, "וואָס איז די פליסנדיק צייַט פון דעם פֿונקציע?"
אַזוי אויב איר דערקענען עס ווי בלאָז סאָרט, דעמאָלט איר קענען תיכף זאָגן N סקווערד.
אבער אויב איר נאָר קוק אין עס, איר טאָן ניט אַפֿילו דאַרפֿן צו פאַרשטיין עס ס בלאָז סאָרט;
איר קענען נאָר זאָגן דעם איז טאן דאָס און דאָס. דאס איז N סקווערד.
[תּלמיד] ביסט דאָרט קיין האַרט ביישפילן איר קענען קומען אַרויף מיט,
ווי אַ ענלעך געדאַנק פון פיגיערינג אויס?
>> איך טאָן ניט טראַכטן מיר וואָלט געבן איר קיין האַרט ביישפילן.
די בלאָז סאָרט זאַך איז וועגן ווי האַרט ווי מיר וואָלט גיין,
און אַפֿילו אַז, ווי לאַנג ווי איר פֿאַרשטיין אַז איר ניטאָ יטעראַטינג איבער די מענגע
פֿאַר יעדער עלעמענט אין דער מענגע, וואָס איז געגאנגען צו זייַן עפּעס אַז ס N סקווערד.
עס זענען אַלגעמיין שאלות, ווי רעכט דאָ מיר האָבן - טאַקע.
נאָר די אנדערע טאָג, דאַג קליימד, "איך האָבן ינווענטאַד אַ אַלגערידאַם וואָס קענען סאָרט אַ מענגע
"פון N נומערן אין אָ (קלאָץ N) צייַט!"
אַזוי ווי טאָן מיר וויסן אַז ס אוממעגלעך?
[ינאָדאַבאַל תּלמיד ענטפער] >> יאָ.
אין דער זייער מינדסטער, איר האָבן צו פאַרבינדן יעדער עלעמענט אין דער מענגע,
אַזוי עס ס אוממעגלעך צו סאָרט אַן מענגע פון ​​-
אויב אַלץ איז אין ונסאָרטעד סדר, דעריבער איר ניטאָ געגאנגען צו זייַן רירנדיק אַלץ אין די מענגע,
אַזוי עס ס אוממעגלעך צו טאָן עס אין ווייניקער ווי אָ פון ען.
[תּלמיד] איר געוויזן אונדז אַז בייַשפּיל פון זייַענדיק קענען צו טאָן עס אין אָ פון N
אויב איר נוצן אַ פּלאַץ פון זכּרון. >> יאָ.
און דאַץ - איך פאַרגעסן וואָס דאַץ - איז עס קאַונטינג סאָרט?
המם. וואָס איז אַ ינטעגער סאָרטינג אַלגערידאַם.
איך איז געווען קוקן פֿאַר די ספּעציעל נאָמען פֿאַר דעם אַז איך קען נישט געדענקען לעצטע וואָך.
יאָ. דאס זענען די טייפּס פון סאָרץ וואָס קענען ויספירן זאכן אין גרויס אָ פון ען.
אבער עס זענען לימיטיישאַנז, ווי איר קענען נאָר נוצן ינטאַדזשערז אַרויף צו אַ זיכער נומער.
פּלוס אויב איר ניטאָ טריינג צו סאָרט עפּעס דאַץ -
אויב דיין מענגע איז 012, -12, 151, 4 מיליאָן,
דעמאָלט אַז איין עלעמענט איז געגאנגען צו גאָר צעשטערן די גאנצע סאָרטינג.
>> שאלות?
[תּלמיד] אויב איר האָבן אַ רעקורסיווע פונקציאָנירן און עס נאָר מאכט די רעקורסיווע רופט
ין אַ צוריקקומען סטאַטעמענט, אַז ס עק רעקורסיווע,
און אַזוי וואָלט אַז נישט נוצן מער זכּרון בעשאַס רונטימע
אָדער עס וואָלט בייַ מינדסטער נוצן פאַרגלייַכלעך זכּרון ווי אַ יטערייטיוו לייזונג?
[באָוודען] יא.
עס וואָלט מסתּמא זייַן עפּעס סלאָוער, אָבער ניט טאַקע.
טייל רעקורסיווע איז שיין גוט.
קוקן ווידער בייַ אָנלייגן ראָמען, לאָזן ס זאָגן מיר האָבן הויפּט
און מיר האָבן ינט באַר (ינט X) אָדער עפּעס.
דאס איז נישט אַ גאנץ רעקורסיווע פונקציאָנירן, אָבער צוריקקומען באַר (X - 1).
אַזוי דאָך, דאָס איז פלאָד. איר דאַרפֿן באַזע קאַסעס און שטאָפּן.
אבער דער געדאַנק דאָ איז אַז דאָס איז עק רעקורסיווע,
וואָס מיטל ווען הויפּט רופט באַר עס ס געגאנגען צו באַקומען זייַן אָנלייגן ראַם.
אין דעם אָנלייגן ראַם דאָרט ס געגאנגען צו זייַן אַ ביסל בלאָק פון זכּרון
אַז קאָראַספּאַנדז צו זייַן אַרגומענט X.
און אַזוי לאָזן ס זאָגן הויפּט כאַפּאַנז צו רופן באַר (100);
אַזוי X איז געגאנגען צו אָנהייבן אויס ווי 100.
אויב דער קאַמפּיילער אנערקענט אַז דאָס איז אַ עק רעקורסיווע פונקציאָנירן,
דעמאָלט ווען באַר מאכט זייַן רעקורסיווע רופן צו באַר,
אַנשטאָט פון מאכן אַ נייַ אָנלייגן ראַם, וואָס איז ווו די אָנלייגן סטאַרץ גראָוינג לאַרגעלי,
יווענטשאַוואַלי עס וועט לויפן אין די קופּע און דאַן איר באַקומען סעגפאַולץ
ווייַל זכּרון סטאַרץ קאַליידינג.
>> אַזוי אַנשטאָט פון מאכן זייַן אייגן אָנלייגן ראַם, עס קענען פאַרשטיין,
היי, איך קיינמאָל טאַקע דאַרפֿן צו קומען צוריק צו דעם אָנלייגן ראַם,
אַזוי אַנשטאָט איך וועט נאָר פאַרבייַטן דעם אַרגומענט מיט 99 און דעמאָלט אָנהייב באַר אַלע איבער.
און דעמאָלט עס וועט טאָן עס ווידער און עס וועט דערגרייכן צוריקקומען באַר (X - 1),
און אַנשטאָט פון מאכן אַ נייַ אָנלייגן ראַם, עס וועט נאָר פאַרבייַטן זייַן קראַנט אַרגומענט מיט 98
און דעמאָלט שפּרינגען צוריק צו די זייער אָנהייב פון באַר.
יענע אַפּעריישאַנז, ריפּלייסינג אַז 1 ווערט אויף דעם אָנלייגן און דזשאַמפּינג צוריק צו דער אָנהייב,
ביסט שיין עפעקטיוו.
אַזוי ניט בלויז איז דאָס די זעלבע זכּרון באַניץ ווי אַ באַזונדער פֿונקציע וואָס איז יטערייטיוו
ווייַל איר ניטאָ נאָר ניצן 1 אָנלייגן ראַם, אָבער איר ניטאָ ניט צאָרעס די דאַונסיידז
פון בעת ​​צו רופן פאַנגקשאַנז.
פאַך פאַנגקשאַנז קענען זייַן עפּעס טייַער ווייַל עס האט צו טאָן אַלע דעם סעטאַפּ
און טעאַרדאָוון און אַלע דעם שטאָפּן.
אַזוי דעם עק רעקורסיאָן איז גוט.
[תּלמיד] פארוואס טוט עס נישט מאַכן נייַ טריט?
ווייַל עס ריאַלייזיז עס טוט נישט דאַרפֿן צו.
די רופן צו באַר איז נאָר אומגעקערט די רעקורסיווע רופן.
אַזוי עס טוט נישט דאַרפֿן צו טאָן עפּעס מיט די צוריקקומען ווערט.
עס ס נאָר געגאנגען צו מיד צוריקקומען עס.
אַזוי עס ס נאָר געגאנגען צו פאַרבייַטן זייַן אייגן אַרגומענט און אָנהייב איבער.
און אויך, אויב איר טאָן ניט האָבן די עק רעקורסיווע ווערסיע,
דעמאָלט איר באַקומען אַלע די באַרס ווו ווען דעם באַר קערט
עס האט צו צוריקקומען זייַן ווערט צו דעם איינער, דעמאָלט אַז באַר מיד קערט
און עס קערט זייַן ווערט צו דעם איינער, דעמאָלט עס ס נאָר געגאנגען צו מיד צוריקקומען
און צוריקקומען זייַן ווערט צו דעם איינער.
אַזוי איר ניטאָ שפּאָרן דעם פּאַפּינג אַלע פון ​​די זאכן אַוועק פון דעם אָנלייגן
זינט די צוריקקומען ווערט איז נאָר געגאנגען צו זייַן דורכגעגאנגען אַלע די וועג צוריק אַרויף סייַ ווי סייַ.
אַזוי וואָס ניט נאָר פאַרבייַטן אונדזער אַרגומענט מיט די דערהייַנטיקט אַרגומענט און אָנהייב איבער?
אויב די פֿונקציע איז נישט עק רעקורסיווע, אויב איר טאָן עפּעס ווי -
[תּלמיד] אויב באַר (X + 1). >> יאָ.
>> אַזוי אויב איר שטעלן עס אין צושטאַנד, דעמאָלט איר ניטאָ טאן עפּעס מיט די צוריקקומען ווערט.
אָדער אַפֿילו אויב איר נאָר טאָן צוריקקומען 2 * באַר (X - 1).
אַזוי איצט באַר (X - 1) דאַרף צו צוריקקומען אין סדר פֿאַר אים צו רעכענען 2 מאל וואָס ווערט,
אַזוי איצט עס טוט דאַרפֿן זייַן אייגן באַזונדער אָנלייגן ראַם,
און איצט, קיין ענין ווי שווער איר פּרובירן, איר ניטאָ געגאנגען צו דאַרפֿן צו -
דאס איז נישט עק רעקורסיווע.
[תּלמיד] וואָלט איך פּרובירן צו ברענגען אַ רעקורסיאָן צו ציל פֿאַר אַ עק רעקורסיאָן -
[באָוודען] אין אַ ידעאַל וועלט, אָבער אין קס50 איר טאָן ניט האָבן צו.
אין סדר צו באַקומען עק רעקורסיאָן, בכלל, איר שטעלן זיך אַן נאָך אַרגומענט
ווו באַר וועט נעמען ינט X אין י
און י קאָראַספּאַנדז צו די לעצט זאַך איר ווילן צו צוריקקומען.
אַזוי דעמאָלט דעם איר ניטאָ געגאנגען צו זייַן אומגעקערט באַר (X - 1), 2 * י.
אַזוי אַז ס 'נאָר אַ הויך-מדרגה ווי איר יבערמאַכן זאכן צו זייַן עק רעקורסיווע.
אבער די עקסטרע אַרגומענט -
און דעמאָלט אין די סוף ווען איר דערגרייכן דיין באַזע פאַל, איר נאָר צוריקקומען י
ווייַל איר ווע שוין אַקיומיאַלייטינג די גאנצע צייַט די צוריקקומען ווערט וואָס איר ווילן.
איר מין פון האָבן שוין טאן עס יטעראַטיוועלי אָבער ניצן רעקורסיווע רופט.
שאלות?
[תּלמיד] אפֿשר וועגן טייַטל אַריטמעטיק, ווי ווען ניצן סטרינגס. >> זיכער.
טייַטל אַריטמעטיק.
ווען ניצן סטרינגס עס ס גרינג ווייַל סטרינגס זענען טשאַר שטערן,
טשאַרס זענען אויף אייביק און שטענדיק אַ איין ביטע,
און אַזוי טייַטל אַריטמעטיק איז עקוויוואַלענט צו רעגולער אַריטמעטיק ווען איר ניטאָ דילינג מיט סטרינגס.
זאל ס נאָר זאָגן טשאַר * s = "העלא".
אַזוי מיר האָבן אַ פאַרשפּאַרן אין זכּרון.
עס דאַרף 6 ביטעס ווייַל איר שטענדיק דאַרפֿן די נאַל טערמינאַטאָר.
און טשאַר * ס איז געגאנגען צו פונט צו די אָנהייב פון דעם מענגע.
אַזוי s ווייזט דאָרט.
איצט, דאָס איז בייסיקלי ווי קיין מענגע מעשים,
ראַגאַרדלאַס פון צי עס איז געווען אַ צוריקקומען דורך מאַללאָק אָדער צי עס ס אויף דעם אָנלייגן.
קיין מענגע איז בייסיקלי אַ טייַטל צו די אָנהייב פון די מענגע,
און דעמאָלט קיין מענגע אָפּעראַציע, קיין ינדעקסינג, איז נאָר געגאנגען אין אַז מענגע אַ זיכער פאָטאָ.
>> אַזוי ווען איך זאָגן עפּעס ווי ס [3]; דעם איז געגאנגען צו ס און קאַונטינג 3 טשאַרס ין
אַזוי ס [3], מיר האָבן 0, 1, 2, 3, אַזוי ס [3] איז געגאנגען צו אָפּשיקן צו דעם ל.
[תּלמיד] און מיר געקענט דערגרייכן די זעלבע ווערט דורך טאן s + 3 און דאַן קלאַמערן שטערן?
יא.
דאס איז עקוויוואַלענט צו * (s + 3);
און וואָס איז אויף אייביק און שטענדיק עקוויוואַלענט קיין ענין וואָס איר טאָן.
איר קיינמאָל דאַרפֿן צו נוצן די קאַנטיקער סינטאַקס.
איר קענען שטענדיק נוצן דעם * (s + 3) סינטאַקס.
מענטשן טענד צו ווי דער קאַנטיקער סינטאַקס, כאָטש.
[תּלמיד] אזוי אַלע ערייז זענען פאקטיש פּונקט פּוינטערז.
עס איז אַ קליין דיסטינגקשאַן ווען איך זאָגן ינט X [4]; >> [תּלמיד] טוט וואָס מאַכן די זכּרון?
[באָוודען] אַז איז געגאנגען צו שאַפֿן 4 ינץ אויף דעם אָנלייגן, אַזוי 16 ביטעס קוילעלדיק.
עס ס געגאנגען צו מאַכן 16 ביטעס אויף דעם אָנלייגן.
X איז נישט סטאָרד ערגעץ.
עס איז נאָר אַ סימבאָל ריפערינג צו די אָנהייב פון די זאַך.
ווייַל איר דערקלערט די מענגע ין פון דעם פֿונקציע,
וואָס דער קאַמפּיילער איז געגאנגען צו טאָן איז נאָר פאַרבייַטן אַלע ינסטאַנסיז פון די בייַטעוודיק X
מיט ווו עס געטראפן צו קלייַבן צו שטעלן די 16 ביטעס.
עס קענען נישט טאָן אַז מיט טשאַר * ס ווייַל ס איז אַ פאַקטיש טייַטל.
עס איז פֿרייַ צו דעמאָלט פונט צו אנדערע זאכן.
X איז אַ קעסיידערדיק. איר קענען ניט האָבן עס פונט צו אַ אַנדערש מענגע. >> [תּלמיד] אָוקיי.
אבער דעם געדאַנק, דעם ינדעקסינג, איז דער זעלביקער ראַגאַרדלאַס פון צי עס ס אַ טראדיציאנעלן מענגע
אָדער אויב עס ס אַ טייַטל צו עפּעס אָדער אויב עס ס אַ טייַטל צו אַ מאַללאָסעד מענגע.
און אין פאַקט, עס איז אַזוי עקוויוואַלענט אַז וואָס איז אויך די זעלבע זאַך.
עס פאקטיש פּונקט טראַנזלייץ ​​וואָס ס 'ין פון די בראַקאַץ און וואָס ס לינקס פון די בראַקאַץ,
מוסיף זיי צוזאַמען, און דערעפערענסעס.
אַזוי דאָס איז פּונקט ווי גילטיק ווי * (s + 3) אָדער ס [3].
[תּלמיד] קען איר האָבן פּוינטערז פּוינטינג צו 2-דימענשאַנאַל ערייז?
>> עס ס האַרדער. טראַדישאַנאַלי, ניט.
א 2-דימענשאַנאַל מענגע איז נאָר אַ 1-דימענשאַנאַל מענגע מיט עטלעכע באַקוועם סינטאַקס
ווייַל ווען איך זאָגן ינט X [3] [3], דאָס איז טאַקע נאָר 1 מענגע מיט 9 וואַלועס.
און אַזוי ווען איך אינדעקס, די קאַמפּיילער ווייסט וואָס איך מיינען.
אויב איך זאָגן X [1] [2], עס ווייסט איך וועלן צו גיין צו די רגע רודערן, אַזוי עס ס געגאנגען צו האָפּקען דער ערשטער 3,
און דעמאָלט עס וויל די רגע זאַך אין וואָס, אַזוי עס ס געגאנגען צו באַקומען דעם איין.
אבער עס איז נאָך נאָר אַ איין-דימענשאַנאַל מענגע.
און אַזוי אויב איך געוואלט צו באַשטימען אַ טייַטל צו אַז מענגע,
איך וואָלט זאָגן ינט * פּ = X;
דער טיפּ פון X איז נאָר -
עס ס פּראָסט געזאגט טיפּ פון X זינט עס איז נאָר אַ סימבאָל און עס ס נישט אַ פאַקטיש בייַטעוודיק,
אָבער עס איז נאָר אַ ינט *.
X איז נאָר אַ טייַטל צו די אָנהייב פון דעם. >> [תּלמיד] אָוקיי.
און אַזוי איך וועט ניט זייַן ביכולת צו צוטריט [1] [2].
איך טראַכטן עס איז ספּעציעל סינטאַקס פֿאַר דיקלערינג אַ טייַטל,
עפּעס לעכערלעך ווי ינט (* פּ [- עפּעס לעגאַמרע לעכערלעך. איך טאָן ניט אַפֿילו וויסן.
אבער עס איז אַ סינטאַקס פֿאַר דיקלערינג פּוינטערז ווי מיט קלאַמערן און זאכן.
עס זאל ניט אַפֿילו לאָזן איר טאָן אַז.
איך קען קוקן צוריק בייַ עפּעס וואָס וואָלט זאָגן מיר דעם אמת.
איך וועל קוקן פֿאַר עס שפּעטער, אויב עס איז אַ סינטאַקס פֿאַר פונט. אבער איר וועט קיינמאָל זען עס.
און אַפֿילו די סינטאַקס איז אַזוי פאַרעלטערט אַז אויב איר נוצן עס, מען וועט זייַן באַפאַלד.
מולטידימענסיאָנאַל ערייז זענען שיין זעלטן ווי עס איז.
איר שיין פיל -
נו, אויב איר ניטאָ טאן מאַטריץ זאכן עס ס ניט געגאנגען צו זייַן זעלטן,
אָבער אין C איר ניטאָ ראַרעלי געגאנגען צו זייַן ניצן מולטידימענסיאָנאַל ערייז.
יאָ. >> [תּלמיד] זאל 'ס זאָגן איר האָבן אַ טאַקע לאַנג מענגע.
>> אַזוי אין ווירטואַל זכּרון עס וואָלט דערשייַנען צו זייַן אַלע קאָנסעקוטיווע,
ווי די יסודות רעכט ווייַטער צו יעדער אַנדערער,
אָבער אין די גשמיות זכּרון, וואָלט עס זייַן מעגלעך פֿאַר אַז צו זייַן שפּאַלטן אַרויף? >> יא.
ווי ווירטואַל זכּרון אַרבעט איז עס נאָר סעפּערייץ -
די אַפּאַראַט פון אַלאַקיישאַן איז אַ בלאַט, וואָס טענדז צו זייַן 4 קילאבייט,
און אַזוי ווען אַ פּראָצעס זאגט, היי, איך ווילן צו נוצן דעם זכּרון,
די אַפּערייטינג סיסטעם איז געגאנגען צו אַלאַקייט עס 4 קילאבייט פֿאַר אַז ביסל בלאָק פון זכּרון.
אפילו אויב איר נאָר נוצן אַ איין קליין ביטע אין די גאנצע בלאָק פון זכּרון,
די אַפּערייטינג סיסטעם איז געגאנגען צו געבן אים דעם פול 4 קילאבייט.
אַזוי וואָס דעם מיטל איז איך קען האָבן - לאָזן 'ס זאָגן דאָס איז מיין אָנלייגן.
דאס אָנלייגן קען זייַן אפגעשיידט. מייַן אָנלייגן קען זייַן מעגאבייט און מעגאבייט.
מייַן אָנלייגן קען זייַן ריזיק.
אבער די אָנלייגן זיך האט צו זייַן שפּאַלטן אין יחיד בלעטער,
וואָס אויב מיר קוקן אין איבער דאָ לאָזן 'ס זאָגן דאָס איז אונדזער באַראַן,
אויב איך האב 2 גיגאבייט פון באַראַן, דאָס איז פאַקטיש אַדרעס 0 ווי די 0 ביטע פון ​​מיין באַראַן,
און דאָס איז 2 גיגאבייט אַלע די וועג אַראָפּ דאָ.
אַזוי דעם בלאַט זאל שטימען צו דעם בלאָק איבער דאָ.
דעם בלאַט זאל שטימען צו דעם בלאָק איבער דאָ.
דאס איינער זאל שטימען צו דעם איינער איבער דאָ.
אַזוי די אַפּערייטינג סיסטעם איז פֿרייַ צו באַשטימען גשמיות זכּרון
צו קיין יחיד בלאַט אַרביטרעראַלי.
און אַז מיטל אַז אויב דעם גרענעץ כאַפּאַנז צו סטראַדאַל אַ מענגע,
אַ מענגע כאַפּאַנז צו זייַן לינקס פון דעם און רעכט פון דעם סדר פון אַ בלאַט,
דעמאָלט אַז מענגע איז געגאנגען צו זייַן שפּאַלטן אין גשמיות זכּרון.
און דעריבער ווען איר פאַרלאָזן די פּראָגראַם, ווען דער פּראָצעס ענדס,
די מאַפּפּינגס באַקומען ירייסט און דעמאָלט עס ס פֿרייַ צו נוצן די ביסל בלאַקס פֿאַר אנדערע זאכן.
מער שאלות?
[תּלמיד] די טייַטל אַריטמעטיק. >> טאַקע יאָ.
סטרינגס געווען גרינגער, אָבער קוקן בייַ עפּעס ווי ינץ,
אַזוי צוריק צו ינט X [4];
צי דאָס איז אַ מענגע אָדער צי עס ס אַ טייַטל צו אַ מאַללאָסעד מענגע פון ​​4 ינטאַדזשערז,
עס ס געגאנגען צו זייַן באהאנדלט די זעלבע וועג.
[תּלמיד] אזוי ערייז זענען אויף די קופּע?
[באָוודען] אַררייַס זענען נישט אויף די קופּע. >> [תּלמיד] טאַקע.
>> [באָוודען] דאס טיפּ פון מענגע טענדז צו זייַן אויף דעם אָנלייגן
סייַדן איר דערקלערט עס בייַ - יגנאָרינג גלאבאלע וועריאַבאַלז. דו זאלסט נישט נוצן גלאבאלע וועריאַבאַלז.
ין פון אַ פֿונקציע איך זאָגן ינט X [4];
עס ס געגאנגען צו שאַפֿן אַ 4-ינטעגער פאַרשפּאַרן אויף דעם אָנלייגן פֿאַר דעם מענגע.
אבער דעם מאַללאָק (4 * סיזעאָף (ינט)); איז געגאנגען צו גיין אויף די קופּע.
אבער נאָך דעם פונט איך קענען נוצן X און פּ אין שיין פיל די זעלבע וועגן,
אנדערע ווי די אויסנעמען איך געזאגט איידער וועגן איר קענען ריאַסיין פּ.
טעקניקלי, זייער סיזעס זענען עפּעס אַנדערש, אָבער אַז ס גאָר ירעלאַוואַנט.
איר קיינמאָל פאקטיש נוצן זייער סיזעס.
די פּ איך קען זאָגן פּ [3] = 2; אָדער X [3] = 2;
איר קענען נוצן זיי אין פּונקט דער זעלביקער וועגן.
אַזוי טייַטל אַריטמעטיק איצט - יא.
[תּלמיד] צי איר ניט האָבן צו טאָן פּ * אויב איר האָבן די בראַקאַץ?
די בראַקאַץ ביסט אַ ימפּליסאַט דערעפערענסע. >> אָוקיי.
פאקטיש, אויך וואָס איר ניטאָ זאגן מיט דעם קענען איר באַקומען מולטידימענסיאָנאַל ערייז
מיט פּוינטערז, וואָס איר קענען טאָן איז עפּעס ווי, לאָזן ס זאָגן, ינט ** פּפּ = מאַללאָק (סיזעאָף (ינט *) * 5);
איך וועט נאָר שרייַבן עס אַלע אויס ערשטער.
איך האט ניט וועלן, אז איינער.
אָוקיי.
וואָס איך האבן דאָ איז - אַז זאָל זייַן פּפּ [איך].
אַזוי פּפּ איז אַ טייַטל צו אַ טייַטל.
איר רע מאַללאָסינג פּפּ צו פונט צו אַ מענגע פון ​​5 ינט שטערן.
אַזוי אין זכּרון איר האָבן אויף די אָנלייגן פּפּ.
עס ס געגאנגען צו פונט צו אַ מענגע פון ​​5 בלאַקס וואָס זענען אַלע זיך פּוינטערז.
און דעריבער ווען איך מאַללאָק אַראָפּ דאָ, איך מאַללאָק אַז יעדער פון יענע יחיד פּוינטערז
זאָל פונט צו אַ באַזונדער בלאָק פון 4 ביטעס אויף די קופּע.
אַזוי דעם ווייזט צו 4 ביטעס.
און דאָס איינער ווייזט צו אַ אַנדערש 4 ביטעס.
>> און אַלע פון ​​זיי פונט צו זייער אייגן 4 ביטעס.
דאס גיט מיר אַ וועג פון טאן מולטידימענסיאָנאַל זאכן.
איך קען זאָגן פּפּ [3] [4], אָבער איצט דאָס איז נישט די זעלבע זאַך ווי מולטידימענסיאָנאַל ערייז
ווייַל מולטידימענסיאָנאַל ערייז עס איבערגעזעצט [3] [4] אין אַ איין פאָטאָ אין די X מענגע.
דאס דערעפערענסעס פּ, אַקסעססעס די דריט אינדעקס, דעמאָלט דערעפערענסעס אַז
און אַקסעססעס - 4 וואָלט זייַן פאַרקריפּלט - די רגע אינדעקס.
וועראַז ווען מיר האט דער ינט X [3] [4] איידער ווי אַ מולטידימענסיאָנאַל מענגע
און ווען איר טאָפּל קאַנטיקער עס ס 'טאַקע נאָר אַ איין דערעפערענסע,
איר ניטאָ אזא אַ איין טייַטל און דעמאָלט אַן פאָטאָ,
דאָס איז טאַקע 2 ד באַווייַזן.
איר נאָכפאָלגן 2 באַזונדער פּוינטערז.
אַזוי דעם אויך טעקניקלי אַלאַוז איר צו האָבן מולטידימענסיאָנאַל ערייז
ווו יעדער יחיד מענגע איז אַנדערש סיזעס.
אַזוי איך טראַכטן דזשאַגד מולטידימענסיאָנאַל ערייז איז וואָס עס ס גערופן
זינט טאַקע דער ערשטער זאַך קען פונט צו עפּעס וואָס האט 10 עלעמענטן,
די רגע זאַך קען פונט צו עפּעס וואָס האט 100 עלעמענטן.
[תּלמיד] איז עס קיין שיעור צו די נומער פון פּוינטערז איר קענען האָבן
פּוינטינג צו אנדערע פּוינטערז? >> נומ
איר קענען האָבן ינט ***** פּ.
צוריק צו טייַטל אַריטמעטיק - >> [תּלמיד] טאַקע. >> יאָ.
[תּלמיד] אויב איך האָבן ינט *** פּ און דעמאָלט איך טאָן אַ דערעפערענסינג און איך זאָגן פּ * איז גלייַך צו דעם ווערט,
איז עס נאָר געגאנגען צו טאָן 1 מדרגה פון דערעפערענסינג? >> יא.
אַזוי אויב איך ווילן צו צוטריט די זאַך אַז די לעצטע טייַטל איז פּוינטינג בייַ -
דעמאָלט איר טאָן *** פּ. >> אָוקיי.
אַזוי דאָס איז פּ פונקטן צו 1 בלאָק, ווייזט צו אן אנדער בלאָק, ווייזט צו אן אנדער פאַרשפּאַרן.
דעריבער אויב איר טאָן * פּ = עפּעס אַנדערש, דעמאָלט איר זענט טשאַנגינג דעם
צו איצט פונט צו אַ אַנדערש פאַרשפּאַרן. >> אָוקיי.
>> [באָוודען] און אויב די זענען מאַללאָסעד, דעמאָלט איר האָבן איצט ליקט זכּרון
סייַדן איר פּאַסירן צו האָבן פאַרשידענע באַווייַזן פון די
זינט איר קענען נישט באַקומען צוריק צו יענע אָנעס אַז איר נאָר האט אַוועק.
טייַטל אַריטמעטיק.
ינט X [4]; איז געגאנגען צו אַלאַקייט אַ מענגע פון ​​4 ינטאַדזשערז
ווו x איז געגאנגען צו פונט צו די אָנהייב פון די מענגע.
אַזוי ווען איך זאָגן עפּעס ווי X [1]; איך ווילן עס צו מיינען גיין צו די רגע ינטעגער אין די מענגע,
וואָס וואָלט זייַן דעם איין.
אבער טאַקע, אַז ס 4 ביטעס אין די מענגע זינט דעם ינטעגער נעמט אַרויף 4 ביטעס.
אַזוי אַ פאָטאָ פון 1 טאַקע מיטל אַ פאָטאָ פון 1
מאל די גרייס פון וועלכער דער טיפּ פון די מענגע איז.
דאס איז אַ מענגע פון ​​ינטאַדזשערז, אַזוי עס ווייסט צו טאָן 1 מאל גרייס פון ינט ווען עס וויל צו פאָטאָ.
די אנדערע סינטאַקס. געדענקען אַז דאָס איז עקוויוואַלענט צו * (X + 1);
ווען איך זאָגן טייַטל + 1, וואָס וואָס קערט איז דער אַדרעס וואָס די טייַטל איז סטאָרינג
פּלוס 1 מאל די גרייס פון דעם טיפּ פון די טייַטל.
אַזוי אויב X = אָקס100, דעמאָלט X + 1 = אָקס104.
און איר קענען זידלען דעם און זאָגן עפּעס ווי טשאַר * C = (טשאַר *) X;
און איצט C איז געגאנגען צו זייַן די זעלבע אַדרעס ווי X.
C איז געגאנגען צו זייַן גלייַך צו אָקס100,
אָבער C + 1 איז געגאנגען צו זייַן גלייַך צו אָקס101
זינט טייַטל אַריטמעטיק דעפּענדס אויף דעם טיפּ פון די טייַטל אַז איר זענט אַדינג צו.
אַזוי C + 1, עס קוקט בייַ C, עס ס אַ טשאַר טייַטל, אַזוי עס ס געגאנגען צו לייגן 1 מאל גרייס פון טשאַר,
וואָס איז שטענדיק געגאנגען צו זייַן 1, אַזוי איר באַקומען 101,
וועראַז אויב איך טאָן X, וואָס איז אויך נאָך 100, X + 1 איז געגאנגען צו זייַן 104.
[תּלמיד] קען איר נוצן C + + אין סדר צו שטייַגן דיין טייַטל דורך 1?
יא, איר קענען.
איר קענען נישט טאָן אַז מיט X ווייַל X איז נאָר אַ סימבאָל, עס איז אַ קעסיידערדיק; איר קענען נישט טוישן X.
>> אבער C כאַפּאַנז צו נאָר זייַן אַ טייַטל, אַזוי C + + איז בישליימעס גילטיק און עס וועט ינקראַמאַנט דורך 1.
אויב C זענען נאָר אַ ינט *, דעמאָלט C + + וואָלט זייַן 104.
+ + טוט טייַטל אַריטמעטיק נאָר ווי C + 1 וואָלט האָבן געטאן טייַטל אַריטמעטיק.
דאס איז פאקטיש ווי אַ פּלאַץ פון זאכן ווי צונויפגיסן סאָרט -
אַנשטאָט פון שאפן קאפיעס פון זאכן, איר קענען אַנשטאָט פאָרן -
ווי אויב איך געוואלט צו פאָרן דעם האַלב פון די מענגע - לאָזן ס מעקן עטלעכע פון ​​דעם.
זאל ס זאָגן איך געוואלט צו פאָרן דעם זייַט פון די מענגע אין אַ פֿונקציע.
וואָס וואָלט איך פאָרן צו אַז פונקציאָנירן?
אויב איך פאָרן X, איך בין גייט פארביי דעם אַדרעס.
אבער איך ווילן צו פאָרן דעם באַזונדער אַדרעס. אַזוי וואָס זאָל איך פאָרן?
[תּלמיד] פּוינטער + 2?
[באָוודען] אזוי X + 2. יא.
אַז ס 'געגאנגען צו זייַן דעם אַדרעס.
איר וועט אויך זייער אָפט זען עס ווי X [2], און דעריבער די אַדרעס פון וואָס.
אַזוי איר דאַרפֿן צו נעמען די אַדרעס פון אים ווייַל דער קאַנטיקער איז אַ ימפּליסאַט דערעפערענסע.
X [2] רעפערס צו דעם ווערט וואָס איז אין דעם קעסטל, און דאַן איר ווילן די אַדרעס פון וואָס קעסטל,
אַזוי איר זאָגן & X [2].
אַזוי אַז ס ווי עפּעס אין צונויפגיסן סאָרט ווו איר ווילן צו פאָרן העלפט דער רשימה צו עפּעס
איר טאַקע נאָר פאָרן & X [2], און איצט ווי ווייַט ווי די רעקורסיווע רופן איז זארגן,
מיין נייַ מענגע סטאַרץ דאָרט.
לעצטע מינוט שאלות.
[תּלמיד] אויב מיר טאָן ניט שטעלן אַ אַמפּערסאַנד אָדער אַ - וואָס ס אַז גערופן? >> שטערן?
[תּלמיד] שטערן. >> טעקניקלי, דערעפערענסע אָפּעראַטאָר, אָבער - >> [תּלמיד] דערעפערענסע.
>> אויב מיר טאָן ניט שטעלן אַ שטערן אָדער אַ אַמפּערסאַנד, וואָס כאַפּאַנז אויב איך נאָר זאָגן י = X און X איז אַ טייַטל?
וואָס איז דער טיפּ פון י? >> [תּלמיד] איך וועט נאָר זאָגן עס ס טייַטל 2.
אַזוי אויב איר נאָר זאָגן י = X, איצט X און י פונט צו די זעלבע זאַך. >> [תּלמיד] פונט צו די זעלבע זאַך.
און אויב X איז אַ ינט טייַטל? >> עס וואָלט באַקלאָגנ זיך ווייַל איר קענען נישט באַשטימען פּוינטערז.
[תּלמיד] אָוקיי.
געדענקען אַז פּוינטערז, אַפֿילו כאָטש מיר ציען זיי ווי אַראָוז,
טאַקע אַלע זיי קראָם - ינט * X - טאַקע אַלע X איז סטאָרינג איז עפּעס ווי אָקס100,
וואָס מיר פּאַסירן צו פאָרשטעלן ווי פּוינטינג צו די בלאָק סטאָרד בייַ 100.
אַזוי ווען איך זאָגן ינט * י = X; איך בין נאָר קאַפּיינג אָקס100 אין י,
וואָס מיר רע נאָר געגאנגען צו פאָרשטעלן ווי י, אויך פּוינטינג צו אָקס100.
און אויב איך זאָגן ינט איך = (ינט) X; דעמאָלט איך איז געגאנגען צו קראָם וועלכער די ווערט פון אָקס100 איז
ין פון אים, אָבער איצט עס ס געגאנגען צו זייַן ינטערפּראַטאַד ווי אַ ינטעגער אַנשטאָט פון אַ טייַטל.
אבער איר דאַרפֿן די געשטאַלט אָדער אַנדערש עס וועט באַקלאָגנ זיך.
[תּלמיד] אזוי טאָן איר מיינען צו וואַרפן -
איז עס געגאנגען צו זייַן קאַסטינג ינט פון X אָדער קאַסטינג ינט פון י?
[באָוודען] וואָס?
[תּלמיד] אָוקיי. נאָך די קלאַמערן איז עס געגאנגען צו זייַן אַן X אָדער איז עס?
>> [באָוודען] אָדער. X און י ביסט עקוויוואַלענט. >> [תּלמיד] אָוקיי.
ווייַל זיי ניטאָ ביידע פּוינטערז. >> יאָ.
[תּלמיד] אזוי עס וואָלט קראָם די העקסאַדעסימאַל 100 אין ינטעגער פאָרעם? >> [באָוודען] יאָ.
אבער נישט די ווערט פון וועלכער עס ווייזט צו.
[באָוודען] יאָ. >> [תּלמיד] אזוי נאָר דעם אַדרעס אין ינטעגער פאָרעם. אָוקיי.
[באָוודען] אויב איר געוואלט צו פֿאַר עטלעכע טשודנע סיבה,
איר קען אויסשליסלעך האַנדלען מיט פּוינטערז און קיינמאָל האַנדלען מיט ינטאַדזשערז
און נאָר זייַן ווי ינט * X = 0.
דעמאָלט איר ניטאָ געגאנגען צו באַקומען טאַקע צעמישט אַמאָל טייַטל אַריטמעטיק סטאַרץ געשעעניש.
אַזוי די נומערן וואָס זיי קראָם זענען מינינגלאַס.
עס ס נאָר ווי איר סוף אַרויף ינטערפּרעטינג זיי.
אַזוי איך בין פֿרייַ צו קאָפּיע אָקס100 פון אַ ינט * צו אַ ינט,
און איך בין פֿרייַ צו באַשטימען - יור מיסטאָמע געגאנגען צו באַקומען יעלד אין פֿאַר נישט קאַסטינג -
איך בין פֿרייַ צו באַשטימען עפּעס ווי (ינט *) אָקס1234 אין דעם אַרביטראַריש ינט *.
אַזוי אָקס123 איז פּונקט ווי גילטיק אַ זכּרון אַדרעס ווי איז & י.
& י כאַפּאַנז צו צוריקקומען עפּעס וואָס איז שיין פיל אָקס123.
[תּלמיד] וואָלט אַז זייַן אַ טאַקע קיל וועג צו גיין פון העקסאַדעסימאַל צו דעצימאַל פאָרעם,
ווי אויב איר האָבן אַ טייַטל און איר וואַרפן עס ווי אַ ינט?
[באָוודען] איר קענען טאַקע נאָר דרוקן ניצן ווי פּרינטף.
זאל ס זאָגן איך האָבן ינט י = 100.
אַזוי פּרינטף (% ד \ N - ווי איר זאָל שוין וויסן - דרוקן וואָס ווי אַ ינטעגער,% X.
מיר וועט נאָר דרוקן עס ווי העקסאַדעסימאַל.
אַזוי אַ טייַטל איז נישט סטאָרד ווי העקסאַדעסימאַל,
און אַ ינטעגער איז נישט סטאָרד ווי דעצימאַל.
אַלץ איז סטאָרד ווי ביינערי.
עס ס נאָר אַז מיר טענד צו ווייַזן פּוינטערז ווי העקסאַדעסימאַל
ווייַל מיר טראַכטן פון זאכן אין די 4-ביטע בלאַקס,
און זכּרון ווענדט טענד צו זייַן באַקאַנט.
מיר רע ווי, אויב עס סטאַרץ מיט בף, דעמאָלט עס כאַפּאַנז צו זייַן אויף דעם אָנלייגן.
אַזוי עס ס נאָר אונדזער ינטערפּריטיישאַן פון פּוינטערז ווי העקסאַדעסימאַל.
אָוקיי. קיין לעצטע פראגעס?
>> איך וועט זייַן דאָ פֿאַר אַ ביסל נאָך אויב איר האָבן עפּעס אַנדערש.
און אַז ס די סוף פון וואָס.
>> [תּלמיד] יייַ! [אַפּלאָדיסמענטן]
>> [CS50.TV]