>> [MÖVZUSUNDA MUSIC]
>> HOPARLÖR 1: Hi, hər kəs.
Bölmə geri xoş gəlmisiniz.
, Mən nə olan Lovely gün yazaraq əmin, burada yalnız dörd Siz var
və bizim adi paketi.
Mən bu həftə sonu xəstə olmuşdur.
Mən sizə uşaqlar üçün Starburst yoxdur.
Mən öskürmə başlaya bilər olduqca bu boyunca.
Belə ki, yalnız mənimlə daşıyırlar.
Mən, həqiqətən, cəhd gedirəm və, ilk bu vasitəsilə almaq
baxmayaraq ki, əvvəl mən bir öskürək hücum var.
Amma yalnız mənə bir asan ola ki, bit az mən xahiş bütün var.
>> Belə ki, today-- üçün gündəm yalnız bir reminder-- viktorina gələn həftə edir.
Mən bu belə bu ötən həftə bildirib keşiyində siz off tutmaq deyil.
Mən sizi bir daha xatırladan oldum.
Növbəti həftə viktorina.
Bunun üçün önümüzdəki həftə bölmə daha çox olacaq
kontormerinin Təfərrüatlar Mən cəhd və bəzi nəzərdən iş lazımdır.
Uşaqlar ola bilər, əgər Belə ki, Mənə göndərməklə mənə kömək
Siz rahat olduğunu şeylər , siz narahat istəyirik ki, ilə
Siz istədiyiniz mövzular Mənə böyük olarıq əhatə.
Mən cəhd və onları işləyə bilər bizim bölməsində gələn həftə daxil
və ya əlavə material və ya hazırlayıcı göndər başqa yerdə əldə edə bilər ki,.
>> Bəli!
Daha çox insanların gəlir!
Mən pis keçən bunu etmədi, fikir həftə, heç bir geri gəlmək istəyir?
Mən qorxuram.
Digər üç şey belə biz artıq getmək olacaq ki,
var yönlendirme, fayl I / O və sonra göstəricilərinə və dinamik yaddaş.
Mən sizə bütün haqqında super heyecan etdiyiniz əmin deyiləm göstəricilərinə hər kəsin sevimli mövzu,
anlamaq üçün sadə.
Mən sizə uşaqlar bütün sağ ki, var əminəm?
>> Belə ki, ilk şey, redirection-- Bu əsasən yalnız bir yoldur
necə daxil nəzarət Sizin proqram şeyi,
necə proqram siz çıxış şeylər.
Əsas yolları ki, uşaqlar ilə əlaqə edilmişdir
yalnız standart həyata vasitəsilə burada çap ekran ilə.
Amma yolları var Biz burada bax pipe--
Bizim words-- növ biridir boru ki, informasiya
və ya bir fayl bir fayl daxil data.
Bu yalnız müxtəlif yolları var Sizin proqram şeyi əldə
və proqram həyata, yerinə yalnız bu ekran onları çap
və ya şeyi giren command line.
>> Belə ki, ilk bir az caret daha çox.
Yalnız çıxış yazdıran output-- Belə ki, Yerine ekran bir fayl.
Siz çap bir şey var idi, belə ki, əgər "Salam, dünya!" ekran,
Yerine qoymaq əgər , output.text ki
output.text adlanan bu faylı yaradır.
Siz onu açmaq zaman, bu lazımdır "Salam, dünya!" demək orada.
Bu super faydalı ola bilər Siz səhvlərin bir ton varsa
həqiqətən, biz bu bir görmək kimi.
Iki caret varsa, bu lazımdır səhv messages çap.
>> Ilə problem qarşılaşdıqda, əgər tərtib, bu səhvlər bir çox var
və çalışır aşağı bataqlıqlaşmışdır edirik Sizin command line vasitəsilə hərəkət etmək üçün
bütün onların vasitəsilə, siz Yalnız bir fayl onları çap,
ki, həmin faylı açmaq onların vasitəsilə asan hərəkət edə bilər.
Mən, həqiqətən, istifadə çox zaman ayıklama edildi
maşın öyrənmə üçün 181 psets.
Belə ki, sonra super faydalı ola bilər.
Bir proqram varsa, bu da faydalıdır bəlkə bir kitabxana yaradan edir
və ya bir set yaradan strings, və siz
ki, görmək lazımdır düzgün onları yaradan oldu.
Bu etmək üçün bir yoldur.
>> Belə ki, bir fayl siz onları çap əgər daha asanlıqla araşdıra bilərsiniz, sağ?
Hərəkət etmək üçün çalışırıq Versus Sizin command line vasitəsilə.
Və sonra bir şey qeyd etmək yalnız böyük ilə
caret çox, siz yazılı əgər artıq exists-- bir fayl
belə ki, biz bu ilk qaçdı əgər kimi vaxt, biz output.text qoymaq
və sonra biz ikinci proqramı idi Proqramın iki kimi çap
və output.text üçün daha böyük idi belə that-- üzerine yazılır
heç nə yazmaq fayl ilə başlayacaq.
>> Siz əlavə etmək istəyirsinizsə Belə ki, bir fayl, biz burada görmək kimi,
Yalnız əlamətləri daha iki böyük etmək.
Və bu əlavə edəcək.
Bu yazmaq olmaz.
Birdən çox çalıştırmak üçün lazım əgər Belə ki, proqramlar cür saxlamaq və
onların hamısı nə track bir fayl sizə qaytarılması,
ki, bunu etmək üçün bir yol var.
Siz qayğı yoxsa fayl nə və o, üzerine icazə var
Yalnız daha bir böyük istifadə edə bilərsiniz.
Ki, hər kəs üçün mənada edirmi?
>> Auditoriya: Like dot daha salam doğramaq çıxış dot mətn çox, kimi iki dəfə,
Bu yalnız çıxış göstərmək lazımdır dot mətn ikinci time--
>> HOPARLÖR 1: Right.
Belə ki, yalnız tamamilə əsasən ki ilə başlamaq var idi nə üzerine.
Burada bu fayl varsa artıq output.text
zəng əsasən nə olursa olsun, mövcud ki, daha bir böyük və ilə
Yalnız hesab edə bilər daha kimi bu faylı əvəz.
Bir Word qənaət etdiyiniz zaman kimi Siz qənaət edirsiniz sənəd və,
və eyni adı saxlamaq və tamamilə it-- üzerine yazır
bu şey eyni sort edir.
Hər kəs hər hansı bir sualınız Yalnız bir fayl tipi?
Awesome.
>> Belə ki, açıq-aydın, siz geri əgər arrow istiqamətdə, bu daxil edə bilərsiniz.
Belə ki, uşaqlar idi Sezar və ya Visioneer kimi
və siz daxil bir şey idi, Bir command line dəlil idi
Bu əslində girdi.
Ki, bunun üçün başqa bir yoldur.
Belə ki, əvəzinə gözləyir bir skript istemi üçün,
Siz xahiş zaman kimi sizin Sezar və ya Visioneer mesaj,
Bir mətn faylı olsa ki, mesaj idi
Siz yalnız onu yazın bilər.
>> Bu nöqtə kimi idi əgər Sezar doğramaq 3 arrow giriş mətn, az olan
Mesaj ki, yalnız gözəl olardı.
Zaman Caesar proqram həqiqətən istifadəçi giriş üçün xahiş,
Bu artıq, çünki var ki Siz bu faylı çap etdik.
Bu yalnız bir yoldur.
Output-- bir əks məlumat üçün yalnız giriş.
>> Və sonra son bir boru deyil.
Belə ki, bu bir olduqca sərin.
Bu imkan verir, çünki bir çıxış almaq
proqram və qoyun başqa bir proqram daxil.
Mən sizə hər hansı bir bilmirəm Bu deşifr ilə oynadığı
ki, CS50 ola bilər Bu ki sizə verdiyi, lakin
Bəzi nümunə almaq üçün imkan verir , fayl şifreleme yazın,
və oradan yazın Sizin parol çözme daxil
etmək üçün əmin eyni çıxdı.
Belə ki, bu cür üç yol loop kimi.
Bunun üçün getmək.
>> Auditoriya: bir proqram varsa , çox giriş var
input demək üçün bir yol var üçün mətn faylı və ya çıxış istifadə etmək olar?
>> HOPARLÖR 1: Bu çox giriş var.
Bu zaman input-- fayl olursa olsun giriş üçün ilk dəfə xahiş, bu
gedən bu, hesab edirəm ki, güman etmək bütün fayl boru gedir.
Bir neçə giriş varsa, siz etdiyiniz belə birdən çox fayl kəmər olacaq.
Belə ki, əgər mesajlar üçün xahiş edirik Sizin kodu üç dəfə,
qoyulması olacaq üç müxtəlif faylları.
Və bu crazy olur.
Və lazım deyil İndi ki, narahat.
Amma bu fikir var.
>> Belə ki, Bəli, boru bir yalnız çıxış edir proqram digər girdi istifadə edir.
Hər kəs orada yaxşı?
Cool.
OK.
Siz yəqin ki, yoxdur bu çox etmək.
Amma anlamaq lazımdır yolları istifadə edə bilərsiniz.
Və bəzi hallar var ki, siz onu istifadə edə bilərsiniz.
>> Belə ki, I / O-- Mən sizə etdiyiniz nə bilirsiniz fayl saying-- biz oxumaq üçün istifadə edirik
və orada ekran yazılı, olan standart və standart deyil.
Və uşaqlar olmuşdur nə var burada sinif əvvəlindən edir.
Amma siz də faylları oxumaq və yazmaq bilər, I / O-- belə daxil fayl bütün fayl olan,
çıxış üçün dayanır deyil.
Belə ki, bu əsasən o deməkdir ki, İndi sizin data bilərsiniz.
>> Yalnız onu çap zaman ekran, bu, əsasən, sağ getdi?
Kimi tezliklə Hello "kimi dünya "və run" Salam dünya "
Bu ekran "Hello dünya" görüntüler.
Amma həqiqətən edə bilməz oradan ilə bir şey.
Bir mətn saxlamaq əgər fayl, sonra birdən-birə
Siz icazə edirik ki, bu məlumatlar var manipulyasiya və ya bir fayl qoymaq,
və ya sonra bir proqram onu ​​qoymaq.
Səbəblərindən biri niyə biz bu yalnız
sonra istifadə üçün veri üçün bir yol kimi.
>> Mən burada addımlar bir neçə var yalnız standart ilə gəzinti
I / O. Addım bir, siz istinad yaratmaq lazımdır
bütün fayl caps star Fayl.
Belə ki, bir fayl bir pointer yaradır.
Beləliklə siz onu açmaq istəyirəm.
Və, sanki deyirlər yalnız fayl fopen bərabərdir.
Və bu qayıtmaq üçün gedir Yalnız açılan fayl göstərici.
Mən sizə bir neçə gördüm ofis saat uşaqlar.
>> Amma hər biri xatırlamaq göstəricilərinə
doğru bir ünvanı və ya null ola bilər?
Biz heç bir halda tapa varsa, bir şey, null qayıda bilər
biz nə üçün nə biz heç onu istifadə etməzdən əvvəl?
Biz əgər yoxlamaq lazımdır Bu null ya deyil, doğru?
Bəzi var idi, çünki məsələ harada nə obyekt
breakout geri edildiyini null idi.
Siz yerinə yetirmək üçün cəhd bu bir funksiyası.
Və kompüter site faulted.
Right?
Mən sizə bir neçə bahis ki, məsələ idi ola bilər.
>> Fopen Belə ki, fopen alacaq fayl bir pointer qayıtmaq,
və ya bir şey yanlış gedir əgər, Bu null geri olacaq.
Belə ki, həmişə yoxlamaq lazımdır Bu null geri deyil ki,
Siz başqa bir şey cəhd əvvəl.
Bu standart paradiqma kimi Burada lazım olacaq ki.
Bir şans orada varsa ki, bir şey, null qayıtmaq bilər
əmin olun Davam deyil əvvəl.
Əks halda, siz olacaq sevimli site çatışmazlıqlar almaq üçün.
Və heç bir, bu ilə məşğul bəyənir.
>> Biz burada görmək kimi, ilk arqument belə fayl yalnız yoludur.
Fayl mövcud deyil, Bu fayl yaratmaq olacaq.
Və yalnız boş olacaq.
Və sonra ikinci arqument istədiyiniz rejimi edir.
Biz bu faylı oxumaq istəyirsiniz?
Onu yazmaq istəyirsiniz?
Siz əlavə istəyirsiniz?
Belə ki, həqiqətən, Mən yalnız said-- nə Fayl mövcud deyil, əgər
və siz oxumaq üçün çalışdığınız Bu, bir səhv atmaq olacaq.
Fayl əgər kimi konseptual mənada adı, əgər file.text hələ mövcud deyil
və yazmaq istəyirəm bu ki, yaradacaq
Sizin üçün file.text adlı bir boş fayl.
Və əlavə etmək istəyirsinizsə, Siz eyni şey etmək lazımdır.
Ki, hissi edirmi?
Siz oxumaq çalışdığınız əgər hələ mövcud deyil ki, bir fayl,
Bu bir səhv atmaq lazımdır.
Əks halda, bu fayl yaradır sizə bu istədiyiniz nə.
Cool.
İndi biz faylı oxuya bilərsiniz.
Və bu, yalnız davam növ edir müxtəlif funksiyaları vasitəsilə
biz fayl I / O var. Bu iradə bu həftəki pset lazım
Mən düzgün yadda əgər.
Bəli, bu, tamamilə olacaq bu həftəki pset lazımdır.
Belə ki, fgetc növbəti xarakter qaytarır.
yalnız mətn xətti qaytarır fgets.
Bu bir şey qayıdacaqlar yeni xətti və qırmaq edəcək.
Belə ki, fread müəyyən oxuyur bytes və yerlərdə onlara sayı
bir sıra daxil olan Bir şey bilər,
yenidən size-- ilə etmək istəyirəm faydalı ola bilər.
>> Necə bir çox insanlar oxumaq yolu ilə pset spec?
OK.
[Işitilemez]
>> HOPARLÖR 1: OK.
Bütün hüquqlar.
Bir fun pset var that-- mütləq oxuyun.
Siz silinmiş yaddaş bərpa almaq Bu çalışır zaman həqiqətən maraqlı card--.
Amma mütləq ki, oxu başlayın.
Mənə danışmaq gəlmək əgər bu barədə suallar var.
>> OK, belə ki, deyirdim, fread bayt bir sıra deyilir.
Yəni bəzi ixtiyari sıra Siz müəyyən olacaq ki,.
Və sonra yalnız hərəkət fseek Müəyyən bir mövqedə.
Belə ki, bəlkə qayğı yoxdur Növbəti 10 bayt haqqında.
Siz yalnız irəli keçmək istəyirəm.
Siz bu barədə qayğı yoxdur.
Siz byte 11 başlayan oxumaq istəyirəm.
fseek siz bunu imkan verir.
Belə ki, seçmə olmaq üçün imkan verir Siz oxuyursunuz nə haqqında.
Fgetc, fgets, və fread oxu Çünki fayl müəyyən bir yerdən.
>> Bu barədə düşünmək üçün bir yol, bu əgər Bizim fayl, siz ilk onu açmaq zaman,
Əgər fayl bu mövqe ki, əvvəlində başlayır.
Zaman zəng fgetc, fgetf, və ya fread,
Bu başlamaq olacaq bu mövqe marker.
Siz yalnız oxumaq istəyirəm deyirlər burada yaddaş bu yığın.
Siz yalnız zəng edə bilməz.
Siz burada axtarmaq lazımdır və sonra oxumaq
və ya oxumaq olur, ya getc, istədiyiniz nə asılı olaraq.
Belə ki, yalnız sizə imkan verir axtarmaq yaddaş hissəsini keçmək.
Və yalnız hər şeyi keçmək olar yolu
bufer onları oxu olmadan.
Ki, hər kəs üçün mənada edirmi?
>> Aydındır ki, orada bir paralel burada çox
bizim çıxış, və ya giriş yönlendirme, Siz oxumaq və yazmaq var.
Belə ki, fputc yalnız yazır Bu fayla xarakter.
fputs bir xətt yazır.
Fprintf biçimlendirilmiş çıxış görüntüler.
Nişanlar varsa, və ya yer, və ya etajer.
Və sonra fwrite bəzi yazır bir fayl bytes array.
Belə ki, bu eyni şəkildə fwrite və fread analoji var
opposites-- fgets, fputs, və sonra fputc və fgetc-- çox
crazy, sürətli şeylər.
>> Yalnız bu cür handy-- saxlamaq Müxtəlif dəfə lazımdır
harada bəlkə yalnız istədiyiniz bir-bir xarakter.
Bəlkə bir bütün xətt istəyirəm.
Sizin lüğət pset-- ilə iki psets edir,
Mən sizə bir bütün vermək, iman mətn formatında lüğət
hər sözü var bir xətti ilə ayrılır.
Əgər oxumaq istəyirdi əgər Belə ki, bir-bir sözlə,
Siz oxuyursunuz əgər nə istifadə edə bilər və onlar bütün, yeni xətləri üzrə ayrılmış edirik
və yalnız bir zaman bir söz istəyirsiniz?
>> Auditoriya: fgets
>> HOPARLÖR 1: Right.
Fgets-- ki qaytarır çünki nə bir xətt deyil.
Və hər sözü onun olduqda öz xətti, biz fgets istifadə edə bilərsiniz.
Cool.
O mənada, hər kəs edirmi?
Cool?
Bəli, biz almaq olacaq göstəricilər ilə fun hissəsi
tezliklə, harada bir riyaziyyat nə almaq.
Və bu böyük olacaq.
>> Fayl yaxın step-- Son.
Burada çox şey ilə, Bizim paradiqmalar bir
Bu qayıda bilər əgər null, null kontrol.
Əgər bir şey açmaq varsa, daha yaxşı bağlayın ediyorum.
Siz etdiyiniz qədər OK, belə ki, siz həyata deyilik Siz bağlı olduğunuz halda həyata.
Cür üzərində deyil kimi yağ xanım oxuyur qədər.
Ki, faylı bağlanması kimi.
Burada deyir kimi həmişə demək
Siz önce faylı açmaq oxumaq və ya ona yazılı.
Siz açmıştınız əgər həmişə bağlayın.
Bütün hüquqlar?
Cool.
>> Belə ki, burada bir misal var.
Bilmirəm tiny-- Belə ki, əgər uşaqlar çox yaxşı olduğunu görə bilərsiniz.
Yalnız biz artıra bilər elə parlaqlıq.
Mən əgər mənə, həqiqətən, bunu edək.
OK, uşaqlar bilməz həqiqətən siz ki, bütün edə bilərsiniz görmək?
OK, biz sonra, bu nə olacaq.
[Işitilemez]
>> Mən bu görmək çox yaxşıdır daşımır.
Hər kəs burada görə bilərsiniz mənim sual siçan çıxdı?
Ah, orada mübarizə nə That!
>> OK.
Əsasən, uşaqlar cür olmalıdır nə bir fikir edir.
Bu mükəmməl deyil.
Sərf çox Amma daha izah istədiyiniz çox vaxt düzgün format üçün çalışırıq.
Əsasən, burada bax, biz fayl açıq ilə başlayın.
Və biz bəzi biz bazası faylı
ki açılması bizim tələbələr deyir.
Və biz bunu yazmaq olacaq.
Əlbəttə, null qayıtmaq.
Beləliklə, biz null yoxlamaq lazımdır.
Və bu deyil sonra əgər null, biz vasitəsilə getmək.
Gördüyünüz kimi, biz istəyirik Burada vasitəsilə loop.
Şagird var.
Tələbələr üç kimi müəyyən hash edir.
Və nə edirik Biz var sağ, fayl çap?
Belə ki, nə biz fayl çap olunur?
>> Auditoriya: The puanları array ki?
>> HOPARLÖR 1: Bəli.
Olan puanları tam array.
Beləliklə, biz bu açırıq verilənlər bazası fayl olan
Mən güman bir növ notları bazası.
Və biz yalnız həyata çap edirik ki, fayl hər bir tələbə puanları.
Cool?
Yaxşı.
Awesome.
OK.
To-- geri almaq edək
>> Auditoriya: Mən tez sual var.
Loop üçün printf deyil mı?
Bu yalnız əgər loop var?
HOPARLÖR 1: Xeyr, bu loop üçün var.
Mən burada çox yaxşı siçan görmək bilməz.
Mən etmək üçün mübarizə alıram düzgün format edir.
Bu bracket getdi edilməlidir.
Burada aşağı olmalıdır.
Bu loop üçün var nə.
Var.
İndi bu, olduqca.
Belə ki, istisna olmaqla be-- olmalıdır necə mən azad ki, son bracket üçün.
OK.
Ki, hər kəs üçün mənada edirmi?
OK.
Biz hərəkət olacaq növbəti şey then--
olan, həqiqətən, siz olacaq kodu görmək lazımdır.
Mən yalnız gedirəm ki, artıq indi surəti.
OK.
Mən bu kodu uşaqlar göstərmək üçün gedirəm.
Mən cəhd və rəqəm istəyirəm Bu ehtimal nə etmək.
>> Belə ki, bir dəqiqə və ya belə etmək that-- verilir.
Keçir və burada neler anlamaq.
>> Hər hansı bir fikir?
>> Biz bilirik ki, ən azı iki command line dəlilləri, sağ?
Mən bir olacaq güman ki, [Işitilemez] bizim proqram deyil
və sonra başqa bir şey.
[Işitilemez] az, çünki iki çox, biz onlara fəğan.
Right?
Və istifadə, bu kimi görünür Bu fayl bir növ olacaq.
Biz bütün ki, razıyam?
Belə ki, indi bunu loop var?
Nə keçir?
>> Auditoriya: Bütün faylları.
HOPARLÖR 1: Məhz.
Bu keçir bütün biz orada giriş var ki, faylları.
Belə ki, hər bir fayl üçün, bu bəzi simli açılması.
Bu fayl açılması.
Right?
Və bu oxu.
Bu null varsa, əlbəttə ki, yoxlanılması.
Və sonra çap edir.
Bu null varsa, bu yalnız bizə izah edir ki, mövcud olan bir fayl deyil.
Ilə, xatırlayıram çünki bizim fayl mövcud var oxuyun.
Right?
Yazmaq və əlavə ilə, Siz bu ilə üz əldə edə bilərsiniz.
Amma oxu ilə, bizim fayl mövcud var.
>> Və sonra mövcud olmadıqda, biz burada nə edirsən?
Yalnız burada başlamaq edək.
Bu var bu ilk xarakter do--.
O nə edir?
O, sağ, bir xarakter alır?
Belə ki, nə bu edir?
Bu ilk xarakter əldə.
Hər kəs EOF bilirik?
>> Auditoriya: fayl sonu?
>> HOPARLÖR 1: tam fayl sonu.
Belə ki, onun vasitəsilə getmək olacaq bütün fayl, sağ?
Və sonra təkmilləşdirə olacaq hər sonrakı xarakter əldə.
Right?
Və nə işi var?
Auditoriya: ki, verilməsi in--
>> HOPARLÖR 1: putchar izləri Sizin ekran.
[Işitilemez] karakter.
Və sonra zaman [Işitilemez] Bu fayl yaxın olacaq.
>> Auditoriya: Siz bir [lazımdır? başqa? ?]
>> HOPARLÖR 1: Not mütləq.
Mən bu cür bu örtük var, deməkdir.
Bu uzun kimi, baxmayaraq ki, qaytarır çünki bu tutmaq deyil kimi, gözəl istəyirik.
Mən yəqin ki, yaxşı demək bir başqa nə təcrübə.
Amma başqa həmişə deyil zəruri xüsusilə
bir şey varsa, bir qaytarılması kimi olan
bu halda olarsınız o deməkdir ki, Bu, proqram son olacaq
və bu almaq heç vaxt lazımdır.
Bu olduğunuz halda üçün daha çox mütləq bir şey qaytarılması deyil.
Bu deyil, əgər çünki bir şey qaytarılması,
Bu, bu doğru olsaydı, o deməkdir ki, bu qalan hələ çalışır.
Və bu halda, siz saxta istəyirəm.
Qaytarılması varsa, və Sizin proqram sona,
bir başqa bütün zəruri deyil vaxt, kontekstdən asılı olaraq.
Jacob, bir sual var idi?
Auditoriya: Bəli.
Belə ki, növbəti xarakter almaq fgetc edir?
Karakter necə artırmaq etmir?
HOPARLÖR 1: Bəli.
Belə ki, fgetc növbəti xarakter alır.
Siz bir mənada C ++ kimi hesab edə bilər.
>> Auditoriya: EOF Belə ki, nə idi?
>> HOPARLÖR 1: EOF fayl sonu.
Bu yalnız bilmək imkan verir ki, bir marker var Əgər fayl sonunda istəyirik ki.
Belə ki, bu çap edir standart həyata.
Və sonra yaxın olacaq bunu zaman fayl.
Və sonra gedək növbəti fayl, sağ?
Belə ki, ümumi, bu proqram nə edir?
>> [Işitilemez]
>> HOPARLÖR 1: Bəli.
Bu, sadəcə orada hər şeyi görüntüler.
Sizlərin heç istifadə əgər CAT Belə ki, bəzi fayl və sonra adı
Əgər hər hansı bir varsa, mən bilmirəm Heç terminal görülən.
Amma heç istifadə əgər komanda CAT-- C-A-T--
və sonra hər hansı bir fayl Siz orada var
Sizin terminal, onu yazdıran Bəzi şeylər üçün super lazımlı ola bilər.
Mən bunu çox istifadə edin.
Ki, hər kəs üçün mənada edirmi?
Cool?
>> OK, belə ki, sizin vəzifəsi ya now-- özünüz və ya Səninlə ətrafında insanlar ilə
yalnız bir sadə proqram yazmaq üçün yalnız "Salam, dünya!" yazacaq
bir fayl üçün.
>> [Işitilemez]
>> HOPARLÖR 1: olduğu kimi mən Mən pis ötən həftə edirsiniz?
Mən pis idi etməyib.
Mən burada bütün istəyirik sevindim.
Bu, həqiqətən məni xoşbəxt edir.
Mən sadə zövqlərə bir qız deyiləm.
Mənim bölmə iştirak mən yalnız istəyirəm.
Mən yalnız bu açılmış alıram Sizlərin birlikdə kod bilər ki.
Mən hər kəs qoyulması kimi deyil Bu spot olmaq istədiyiniz halda.
>> Auditoriya: viktorina üçün nə bir proqram yazmaq var?
>> HOPARLÖR 1: Siz tələb oluna bilər əl ilə sadə proqramları yazın.
Yup.
>> Auditoriya: Viktorina sağ, gələn həftə?
>> HOPARLÖR 1: Viktorina növbəti Çərşənbə edir.
Ki, bir sevimli [var deməkdir? CSE?] , sonra partiya grading olan
Sizin puanları almaq lazımdır deməkdir geri nə vaxt night-- ki?
Kim bilir?
Amma bu gecə olacaq.
>> Bütün hüquqlar.
Biz bu başlamaq istəyirsiniz?
Mən sizə bu bir hint-- başlayır verəcəyik.
>> Auditoriya: Siz bir fayl açmaq lazımdır.
>> HOPARLÖR 1: Bəli.
Beləliklə, nə siz zəng etmək istəyirsiniz?
Yalnız "file" zəng etmək istəyirsiniz?
Nin asan edək.
Belə ki, nə var fopen-- bizim olacaq çıxdı test?
"Hello." Zəng
Və rejimi nədir?
Biz bu fayl nə edirsən?
>> Auditoriya: oxuyun.
Yazı.
HOPARLÖR 1: Biz buna yazılı edirik.
Lovely.
OK, belə ki, biz indi bu fayl var.
Biz nə üçün lazımdır?
Auditoriya: null yoxlayın.
HOPARLÖR 1: tam null yoxlayın.
Mən eşitmək istəyirəm nə.
Xüsusilə, avtomat olmalıdır Bu baxımdan olduqca çox.
Siz segfaulting, siz yəqin ki, başlamaq əgər haradasa null kontrol etməyib.
On həyata doqquz dəfə, ki Sizin səhv olacaq.
Yalnız əldə edə bilər, belə ki, bu null varsa vərdiş, həmişə yoxlamaq
Sizin həyat olacaq gözəl və asandır ya asan.
>> Belə ki, null varsa kontrol edin.
Bu null deyil, olan Belə ki, Bu bang bərabərdir nə
means-- Bu etibarlı null deyil.
Biz nə istəyirsiniz?
Biz yalnız çap etmək istəyirəm ki, fayl, sağ?
Belə ki, nə biz istifadə edir?
>> Auditoriya: fprintf
>> HOPARLÖR 1: Fprintf-- sevimli.
Və fprintf iki arguments-- harada edir gedir və nə biz çap istəyirik oldu.
Belə ki, ilk var?
Bu hara gedir?
>> Auditoriya: File.
>> HOPARLÖR 1: Bu fayl olacaq.
Və biz çap nə istəyirsiniz?
"Salam, dünya!"
Bütün hüquqlar.
Biz son bir şey var burada böyük bir paradiqma.
Auditoriya: Close.
HOPARLÖR 1: Close.
Burada getmək.
>> Auditoriya: belə olur fayl null əgər?
HOPARLÖR 1: Bu null deyil, əgər Xeyr, bu.
Auditoriya: Oh, əgər deyilik OK.
Daha sonra fopen və daxili getmək ki, iki dəlilləri,
ilk dəlil yenə nə deməkdir?
>> HOPARLÖR 1: dəlil deyil yalnız fayl adı kimi
siz getmək istəyirəm.
Bu çalışır sonra belə, siz ki "salam" adlı bir fayl var
ki çərçivəsində "Hello, dünya" idi.
Vəssalam.
Yalnız adı.
>> Auditoriya: Və ildən yazılı, fayl artıq mövcud deyil.
Siz nə dedi ki?
>> HOPARLÖR 1: Right.
Məhz.
"Hello" bir fayl kimi varsa hələ mövcud deyil, bu
adlı bir fayl yaratmaq niyyətindədir Hello "və sizin üçün yazmaq.
>> Auditoriya: Siz izah etdiyiniz zaman proqram, fayl yazdı
niyə yazmaq "file" əvəzinə yoxdur fayl və fprintf-- adı
>> HOPARLÖR 1: Bu halda, biz var bütün caps-- ulduz böyük fayl,
fayl.
Belə ki, fayl bir pointer ki, söhbət edirik.
Bu yoldur ki, biz yalnız istinad.
Bu halda Belə ki, fayl AHA hesab edə bilər,
biz burada Hələ faylı istifadə edə bilərsiniz "Hello" açılması aiddir
və yazmaq imkan.
>> Auditoriya: Biz bir "Salam" qoymaq bilər əvəzinə [? yalnız?] f fayl?
HOPARLÖR 1: Xeyr, çünki "Hello" açıq və yazmaq lazımdır.
Burada File kimi OK deyir ki designator, biz
Bu fayl salam var biz aradığınız ki.
Bu açılmışdır.
Və biz onu yazmaq üçün gedir.
Yalnız "Hello" istifadə əgər, ki, şüarında əksini tapmışdır.
Belə ki, həyata freak olacaq.
Mən sizə adına bilərdi, demək.
Siz fayl edə bilərdi star, "Salam", ki, bərabərdir.
Amma bütün məsələ sizin ki üçün bir fayl ulduz göstərici lazımdır
bu funksiyaları istifadə etmək.
Auditoriya: siz bilər fayl, star, fayl, "Salam"
və ya qoymaq var tərəfindən, fayl ulduz fayl?
HOPARLÖR 1: Siz bilər "Hello"., fayl, ulduz
Siz bu dəyişə bilərsiniz nə adı istədiyiniz.
Bu tamamilə ixtiyari var ki, adı nə.
Siz bir şey olar.
Siz istəyirdi, spagetti uçan onu adı.
>> Auditoriya: üçün quotes "w" nədir?
>> HOPARLÖR 1: Bu "w" yalnız növüdür.
Beləliklə, biz bu fayl yazılı edirik.
Hər kəs yaxşı?
Clear?
Bəli.
>> Auditoriya: Bu yazır Belə ki biz o fayl tapa bilərəm, fayl?
>> HOPARLÖR 1: Bu eyni olacaq Hal-hazırda etdiyiniz directory.
Siz pset üç edirsinizsə və Siz pset ərzində run
üç qovluq olacaq adlanan bu fayl "Hello".
Cool?
Hər kəs yaxşı?
Bütün etdiyiniz kimi hiss edirəm böyük olan, onu əldə.
OK.
Belə ki, geri slide show-- üçün Şeyi iş zaman sevirəm.
OK, uşaqlar heyecan göstəricilərinə edirsiniz?
Göstəricilərinə böyükdür.
Onlar bir az almaq başını ətrafında kesmek.
Bu mənim ikinci il tədris göstəricilərinə.
Və mən nəhayət əldə edirəm.
Siz mübarizə əgər Belə ki, OK.
Mən əvvəl qeyd etdiyim kimi, şəkillər rəsm , CS şeyi bir çox kömək edir
qədər Mən edirlər düşünmək kimi oh, biz kompüter etdiyiniz düşünmək.
Biz yalnız kodu olmalıdır.
No-- rəsm şəkillər həqiqətən sizə kömək edəcək.
Mən, həqiqətən, təşviq Sizin kindergartner yan tap
və crayons həyata gətirmək və ya markerlər və heç-heçə.
Bu sizə kömək edəcək.
Və ofis saat mənə bax, mən kağız destesi ətrafında balans olacaq
qələm şeyi rəsm ilə.
>> Belə ki, xüsusilə ilə şəkil çəkmək göstəricilərinə.
Və biz, həqiqətən olacaq əminəm burada bəzi şəkillər rəsm ola bilər.
>> Belə ki, uşaqlar bütün Binky görmək lazımdır Bu sərin claymation şey.
Və biz o zaman həqiqətən gülməli hesab edirəm o ədəd bir dəstə daxil explodes.
Bu sinif üçün komik relyef var.
C [Işitilemez] Bu böyük bacarığı yaddaş nəzarət etmək.
Və bu həqiqətən şeyi biridir Belə bir güclü dil edir.
Lakin böyük güc gəlir böyük məsuliyyətdir.
Və crazy şey ola bilər Siz ehtiyatlı deyilik əgər.
Belə ki, istifadə etdiyiniz zaman göstəricilərinə, siz etmək istəyirəm
Siz, həqiqətən, başa düşmək dəqiq nə edirik.
İnşallah növbəti az zaman siz həqiqətən anlamaq kömək edəcək
göstəricilərinə, necə istifadə, və onlara manipulyasiya necə.
>> Mən biz əminəm yaddaş əvvəl bu diaqram görüldü.
Belə ki, bu yalnız bir sadə diagram edir necə şeylər yaddaş saxlanıla bilər.
Belə ki, əsasən bu var bir byte blokları böyük Diziler
biz burada cüzi nə edir bir hər zaman əlavələr.
Bu hex edir [Işitilemez] Siz səkkiz-bit blokları.
Və hər blok bağlıdır bəzi hexadecimal ünvanı ilə.
Əgər görmək əgər 0x, yalnız notating var
bir hexadecimal ünvan var ki.
Bu o deməkdir kəsb edə bilər yaddaş bəzi ünvanı.
Biz yaddaş ünvanları bəhs edirik zaman hexadecimal görürük.
>> Biz ints dəyişənlər var var, üzüb gedirdi ki, mağaza dəyişənlər var.
Ints mağaza ints belə.
Floats mağaza üzüb gedirdi.
Beləliklə, biz də göstəricilərinə malik ki, mağaza yaddaş ünvanları.
Yəni Xəritəçəkmə bir növ var.
Pointers yalnız var yaddaş ünvanları üçün.
Belə ki, orada sizin növü kimi.
Sizin cihaz 32-bit, deməkdir deyil Yaddaş ünvanı dörd bytes edir.
Beləliklə, siz hər hansı göstərici dörd bytes olacaq.
Yoxsa dörd bayt başqa əgər, Yaddaş dörd bayt edir.
Pointers mağaza yaddaş.
Buna görə də, onlar dörd bayt istəyirik.
Cool-- yalnız gücləndirmək istəyirik.
>> İndi bu komik almaq lazımdır.
Mən sizə necə çox bilmirəm xkcd azarkeşləri var, lakin mən xkcd sevirəm.
Bu, böyük deyil.
>> Bütün hüquqlar.
Dediyim kimi bu, göstəricilərinə yaradılması olduqca çox yalnız başqa bir şey istəyirəm.
Siz bir növü var.
Siz adı var.
Right?
Yəni biz orada nə var. [? Hex?] Star, bir göstərici var deməkdir
və sonra siz zəng etmək istəyirəm nə.
Belə ki, növü təmsil Siz saxlamaq olar.
Bütün hüquqlar?
Eyni şəkildə biz ints əgər, biz orada int saxlanılması edirik bilirik.
Bir göstərici ilə, Yaddaş ünvanı keçirir.
Amma nə o deməkdir burada harada that-- edir rəsm yararlı gedir.
Belə ki, bu halda, biz Bəzi dörd deyək dəyər.
Dörd ünvan bir edir.
OK?
>> Bu birinci burada deməkdir bir pointer 2x ki.
Right?
Bəzi göstərici x var.
x, hər hansı bir şey ola bilər.
Nə olursa olsun x x dörd demək That.
Bu saxlamaq olacaq Burada yaddaş ünvanı.
Belə ki, int, star, x-- bu yaddaş bəzi digər slot
bu nə bilir.
Amma burada bir ünvan saxlamaq olacaq.
Belə ki, bu qədərdir olacaq bu halda, nə olursa olsun,
saxlanılır nə 0x1-- saxlanılır Bizim göstərici tutan ünvanda,
ilə uyğun var nə biz təyin etdik.
Belə 0x1, bu halda, bu x edir.
Bu yalnız heç bir ola bilər biz bu istifadə etdiyiniz zaman int.
>> Eynilə, biz əgər başqa 1y, nə
bir y malikdir ünvan saxlanılır z ilə char-- eyni şey olacaq.
Eyni şəkildə, zaman siz cəhd və intx 0,4 bərabərdir nə,
bu da fəğan və olacaq heç kimi, siz bir int istədiyini söylədi.
Bu int olması ehtimal edilir.
Bir float etmək üçün çalışırıq Stop.
>> Belə şeylər onlar istəyirəm nə olsun.
Şeyləri özləri olsun.
Belə ki, böyük şey yalnız göstərici hansı növü
Bu ki, yalnız var deyil Orada bilərsiniz şey.
OK?
Təcrübə ilə, kimi Keçən həftə, hər şey
həqiqətən cür mücərrəd görünür.
Biz bəzi təcrübə etmək olacaq.
Daha çox mənada etməlidir.
>> Belə ki, sened və bu dereferencing-- Həqiqətən əhəmiyyətli bu düz almaq üçün.
Mən hələ yenilemek üçün hər indi və sonra.
Mən bir istəyirəm gözlədilir kimi oldum?
Belə ki işareti həqiqətən verəcək Siz istinad və ya ünvanı.
Belə ki, ünvanı qaytarır olan dəyişən yaddaş saxlanılır.
Belə ki, həqiqətən, sizin üçün geri olacaq bir hexadecimal, dereferencing isə
həqiqətən vermək niyyətindədir orada saxlanılır ki, data.
OK?
Beləliklə, biz bir nümunə baxmaq olacaq həqiqətən sürətli, və ya faktiki olaraq gələcək.
>> OK.
Belə ki, biz, həqiqətən, düşünmək lazımdır diqqətlə bu barədə.
Belə ki, burada biz bəzi tam x.
Mən cəhd və bu çəkmək gedirəm Mənim qabiliyyət yaxşı həyata.
Beləliklə, biz bu slot x olacaq.
Və beş saxlanılması.
Ünvanı 0x4 edir.
Cool?
Bütün yaxşı.
>> Belə ki, indi biz bu göstərici var.
Burada üzərində idi.
Və işareti bizə verir bir şey ünvanı.
Belə ki, bu halda, x ünvanı var.
X ünvanı nədir?
04-- və bu göstərici 0x08 edir.
Cool?
Belə ki, bu barədə düşünmək olar pointer, 04, yalnız burada göstərir.
Onlar göstəricilərinə adlı edirik biz bu daha çox almaq kimi, çünki,
şeyi işarə görmək olacaq.
Və bir blok başqa işarə blok çox mənada edəcək.
Belə ki, burada iki.
Və sonra biz bəzi what-- 0x0c olan surəti.
Və olacaq Bizim göstərici dereference.
>> Belə ki, nə deyirdik edir OK, burada göstərici var.
Bu mağazalar dəyəri nə 0x04, Və Bu ünvana gedin deyən oldu
və bu nə mənə.
Belə ki, səmərəli deyil Bu arrow nə edir.
Siz ulduz kimi hesab edə bilər.
Biz ulduz Belə ki OK, bu əməl deməkdir.
Bu ünvana gedin.
Və yalnız aşağıdakı əsasən Bu yaddaş yığın bu arrow.
Və 5 olan bu nə bizə.
Bizim surəti 5 bərabərdir nə var.
Ki, hissi edirmi?
Hər kəs ilə getmək mənə ehtiyac varmı bir daha, və ya daha yavaş?
Siz mənə getmək istəyirəm bir dəfə daha vasitəsilə?
OK.
Biz yenidən yenidən olacaq.
Biz başlamaq zaman, biz bütün biz razı dəyişən ki, yaddaş bir yığın
biz 5 bərabər müəyyən x.
Bu yaddaş Biz nəzarət yoxdur.
Belə ki, bu spot yalnız özbaşına təyin.
Orada yaxşı?
OK.
Sonra bir int bir pointer başlamaq.
Ki, qeyd etmək icazə var nə var x biz burada int var, çünki.
Biz bir yığın var yaddaş, çünki bu göstərici
başqa yalnız bir şey kimi bir dəyişən var.
Bu özbaşına təyin edir yaddaş bəzi kosmik.
Və nə mağazalar x ünvanı.
Ampersand x ünvanı deməkdir.
Belə ki, x ünvanı nədir?
>> Auditoriya: Bu sıfır var
HOPARLÖR 1: 0x04.
Belə ki, then-- son bir.
Biz yenə bəzi copy-- var yalnız başqa dəyişən.
Belə ki, bəzi əsassız yerə təyin edək.
Bizim göstərici dereference və biz.
Ulduz getmək deməkdir ünvan mənim göstərici saxlanılır.
Orada nə mənə deyin.
Belə ki, ünvan saxlanılır Bizim pointer 0x04 edir.
Belə ki, ünvan üçün gedin.
Bu ünvana işarə edir.
Bu yaddaş blok daxilində nə var?
Bu beş var.
Belə ki, biz surəti təyin budur.
Hər kəs yaxşı?
Cool.
Again-- şəkillər.
>> Belə ki, mən burada dəyərlər izleme uşaqlar bu barədə düşünmək imkan olacaq.
Biz başqa şəkil çəkmək olar.
Amma siz cəhd və səbəb istəyirəm bir dəqiqə üçün öz vasitəsilə.
>> Onlar vermədi ildən Bizə nümunə ünvanı,
Mən yalnız işareti x-- gedirəm ev sürücü kömək etməlidir.
Ampersand ünvanı deməkdir.
>> Ilk, hər kəs belə birinci xətti ilə getmək.
Bəzi x set nin five-- bəzi yaddaş təsadüfi slot.
Int star pointer bərabər x ünvanı üçün, sağ?
Int star pointer yaradır Bu blok, bu göstərici çağırır,
və x ünvanı üçün verir.
Mən ampersands dəhşətli Ben.
>> İndi nə edirik Biz demək OK, bizim göstərici dereference.
Belə ki, biz OK, bizim göstərici nə getmək?
Bu işareti x var.
Işareti x gedin və redesign.
>> Belə ki, indi, işareti x 35 olacaq.
Belə ki, əsasən, zaman etdiyiniz dereferencing, siz OK gedin.
Siz rəsm olacaq bu kimi şəkillər.
Siz rəsm olacaq harada sizin oxlar.
Belə ki, yaddaş bu slot gedin və ya Mənə ki, dəyəri geri vermək və ya dəyişdirmək.
Bu halda, çünki biz bu etdiyiniz , biz onu təyin etdiyiniz dəyəri 35 olmalıdır.
Son Halbuki bir fark, biz
nə təyin edilib Burada başqa bir şey üçün.
>> Belə ki, onlar bu zəhmli masa var.
Bu pis deyil.
Siz uşaqlar üzərində işləyirik.
Mən board onu çıxartmaq üçün gedirəm.
Biz OK, birlikdə doldurun olacaq?
Belə ki, bəzi kağız, işğalçı qamarlamaq tərəfdaş, iş başlamaq.
Mən almaq üçün gedirəm təbaşir böyük parça.
Bir çox olacaq, çünki.
OK.
PROFESSOR: OK.
Birinci sıra ilə başlamaq edək.
Biz sonra, orada uşaqlar başlamaq lazımdır bəlkə bəzi daha çox vasitəsilə işləyə bilər.
OK.
bir nə qədər b dəfə c bərabərdir?
Bu oyun sual deyil, mən söz verirəm.
>> TƏLƏBƏ: 4 dəfə 5.
>> PROFESSOR: 4 dəfə 5.
20.
Belə ki, b var?
TƏLƏBƏ: 4.
>> PROFESSOR: And c?
TƏLƏBƏ: 5.
PROFESSOR: 5.
Və sonra bu, yalnız gedir bir işareti b ampersand edilə,
işareti c, sağ?
Pis deyil.
Bu kifayət qədər sadə.
OK.
Növbəti bir belə.
A halda, bir dəfə c bərabərdir hər kəs ilə tanış idi.
Tanış hər kəs Bu dəfə bərabərdir ilə?
OK, bu bu means-- bir stenoqrafiya bir dəfə c bərabərdir.
Siz həmçinin bölgüsü ilə bunu edə bilərsiniz, toplama işlemi ilə yanaşı, ilə.
Siz bərabərdir edə bilərsiniz, və ya bir plus c bərabərdir bir plus c, bərabər bir minus demək bərabərdir
c bir minus c bərabərdir olardı.
Bu yalnız sintaktik şəkər var.
>> Belə ki, bu halda, bir bərabərdir Bir dəfə c bizə nə verəcək?
Yenə də, bir oyun sual.
>> TƏLƏBƏ: 100.
>> PROFESSOR: 100.
Başqa bir şey dəyişə bilər?
No.
Bəlkə nəhayət olacaq Mənim ampersands daha yaxşı.
>> TƏLƏBƏ: OK, sorry, necə 100 əldə etdiniz?
PROFESSOR: OK.
Belə ki, bir bərabərdir dəfə c, belə bir dəfə c.
TƏLƏBƏ: Oh, siz istifadə etdiyiniz Bu previous-- üçün
PROFESSOR: Bəli.
Belə ki, bu bizim ən son dəyərlərdir.
Bunlar olmalıdır nə Biz aşağı hərəkət kimi OK istifadə.
Belə ki, b, yalnız bir şey dəyişən mı?
Belə ki, başqa hər şey doldurmaq bildirin.
B. Nə b olacaq?
Ya deyil olmaq üçün.
Belə ki, nə bu edir?
Pa bunu ulduz nədir?
>> TƏLƏBƏ: pa yerini Kod.
>> TƏLƏBƏ: Xeyr, çox.
Belə ki, bu d istinad edir.
>> TƏLƏBƏ: Belə ki, b illik əlli dəyəri nə.
>> PROFESSOR: Bəli, belə pa edir bir ünvanı, sağ?
Belə ki, bir olduğu üçün getmək deyərək saxlanılır və bu dəyər verir.
Belə ki, b nədir?
TƏLƏBƏ: 100.
PROFESSOR: 100.
Perfect.
OK, belə ki, pc nə dəyişir olunur.
Başqa hər şey eyni qalır.
Nə pc olacaq?
Simple təyin.
Pc pa bərabər və pa nədir?
>> TƏLƏBƏ: a işareti.
PROFESSOR: Perfect.
İndi biz maraqlı əldə edirik.
OK, aşağı bu qırmaq edək.
Ki, çünki Birincisi, nə, b dəfə c var bu bir asan hissəsidir, sağ?
B dəfə c That
>> TƏLƏBƏ: 500.
>> PROFESSOR: Bəli, belə bu bir nə edir,
Bu ulduz PB əgər, nə dəyişir?
>> TƏLƏBƏ: Nə the-- var
PROFESSOR: b nədir?
TƏLƏBƏ: məkanında nə ki, pb işarə edir.
PROFESSOR: Və pb to-- işarə edir
TƏLƏBƏ: B.
PROFESSOR: B. Belə ki, yalnız şey dəyişən sağ, b.
Belə ki, b dəfə c, 500.
Belə ki, indi nə dəyişikliklər var.
Cool.
Lovely.
Siz uşaqlar böyük edirik.
Bu bir aşağı qırılma Bütün hüquqlar.
C doğru, dəyişir?
Beləliklə, biz başqa hər şey doldura bilərsiniz.
Baxaq.
OK.
Biz c olacaq bilirik ki, iki ədəd məhsul, sağ?
Hansı iki ədəd olsa?
>> TƏLƏBƏ: A və c?
>> PROFESSOR: Belə bir deyil Sağ ilk bir.
Beləliklə, biz doğru, bir p istinad istədiyiniz edirik?
Bir bir bal P, biz bilirik ki, Bu 100 dəfə nə olacaq?
PC nöqtəsi nə Times?
Bir göstərir.
Belə ki, 100 dəfə 100 10,000.
Ki, hissi verir mu?
Cool.
Ana uzanır, uşaqlar, son sıra.
OK.
Burada nə dəyişir?
>> TƏLƏBƏ: A.
PROFESSOR: A. Perfect, belə ki, başqa hər şey eyni qalmaq bilər.
OK.
Və nədir?
Belə ki, bir dəfə nə var?
Bu ulduz pb edir.
Belə ki, ulduz pb burada deməkdir pb, pb bal b.
>> TƏLƏBƏ: 500.
>> PROFESSOR: 500.
Beləliklə, biz 500 dəfə 100 var.
50,000 var.
Whew!
Ki, baxın.
>> TƏLƏBƏ: Niyə biz var Bu last-- üçün & c
PROFESSOR: Sorry.
TƏLƏBƏ: OK, Oh.
PROFESSOR: Mənim pis.
Yazı çox.
Hər kəs yaxşı?
Çox pis deyil, sağ?
Bir az edir isə ilə işləmək üçün.
Siz onu qırmaq əgər, nə hər bir hissəsi başa
kimi to-- istinad edilir bu hər şeyi ilə,
kiçik üçün qırmaq yes-- sonra recombine və problemlər,
və bəzi zəhmli stuff edə bilərsiniz.
Orada cavab, lakin biz bunu etdik.
Pointer hesab.
Ah.
Mənim əlləri bütün chalky var.
Belə ki, əlavə və ya subtracting int göstərici ayarlar
pointer növü ölçüsü.
Necə hər növü saxla fərqli bir ölçüsü var?
Ikiqat və ya uzun uzun kimi Belə ki, səkkiz və int dörd lakin char biridir.
>> Beləliklə, siz nə etmək istədiklərini yadda bir şey That
yalnız necə qədər pointer dəyəri həqiqətən dəyişir
Bu asılı olacaq göstərici növü deyil.
Bu yaxşı hər kəs?
Mən onu silmək edə bilərəmmi?
Biz yaxşı edirik?
Awesome.
>> Biz bəzi pointer varsa Belə ki, bu gedir that-- Ben be-- üçün
bir int göstərici etmək niyyətindədir.
Bu saklar.
Siz göstərici demək olsaydı plus bir bunu neler
Bu yeniləmə olacaq ki, bir int ölçüsü ilə
ki, çünki göstərici növü deyil.
>> C ilə, hər şey çox ciddi və tənzimlənən.
Bu int göstərici ilə yeniləmək üçün gedir bir int edəcək kosmik məbləği.
Bir int dörd bayt edir.
>> Belə ki, nə bu çevriləcək olardı?
Siz yalnız bu üzərində dörd əlavə edirik.
İndi pointer OK be-- olardı.
>> Belə ki, əgər bir char idi və biz göstərici etdi plus bir, indi nə olardı?
Biz iddia started-- əgər Bu 0x08 var indi started--.
Indi bu idi deyirlər göstərici char, və biz bir əlavə.
Nə üçün dəyişə bilər?
Bir char neçə bayt edir?
>> Auditoriya: One.
>> HOPARLÖR 1: One.
Auditoriya: Belə 0x09.
HOPARLÖR 1: Belə ki, doqquz olardı.
Belə ki, yalnız bir şey unutmayın.
Siz bir əlavə Just zaman, bu deyil bir char var halda bir əlavə.
Bu neçə əlavə edir ki, bu növü bytes
biz niyə edir qədər burada bu tənlik.
Belə ki, int dəfə ölçüsü göstərici növü.
>> Beləliklə, biz burada nümunə var.
y ki, dəyəri 0x4 verilib biz y plus bir bərabərdir.
Bu nədir, nə x, dəyişmir.
Nə dəyişiklik yoxdur y var nə.
Y saxlanılan ünvanı dörd tərəfindən yeniləndi dörd bytes bir int var, çünki
və bir int göstərici var.
>> Bütün hüquqlar.
Belə ki, indi biz başqa həyata var.
Belə ki, sual çap edəcəyik.
Hər hansı bir fikir?
>> Auditoriya: sayı xoşbəxt pişik simvol?
HOPARLÖR 1: Məhz.
Belə ki, simli ilə kimi.
Hər kəs almaq mı?
Biz onun vasitəsilə gəzmək istəyirsiniz?
>> OK, bəli.
Belə ki, biz burada nə çox daha çox bu kimi.
Mən yoxdur [Işitilemez] ridiculously.
>> Beləliklə, biz burada simli, xoşbəxt pişik var.
Lovely.
Biz bəzi counter var ki, biz takip saxlanılması edirik.
Beləliklə, biz bir char * göstərici var yalnız küç bərabər müəyyən edilir.
Bu edir bu deyil Bəzi göstərici təyin
Sizin simli əvvəlinə.
Mən əminəm, çünki, bu kimi mühazirə qeyd edilib,
Biz bu uşaqlar təqdim etdik adlı simli data növü.
>> Amma həqiqətən strings yalnız var bir sıra char * kimi kontormerinin Təfərrüatlar.
Bu simvol bir dəstə bir göstərici var yaddaş bitişik var.
Belə ki, bu yalnız edir hər hansı bir string bərabərdir
burada tərəfindən müəyyən ilk karakter.
Belə ki, bu yalnız bir nöqtəyə qəbulu simli əvvəlinə bərabərdir.
Hər kəs orada yaxşı?
Cool.
>> Belə ki, bu, bizim göstərici dereferencing edir.
Belə ki, həqiqətən olacaq Burada bizə dəyər vermək,
simli söhbət edirik ki.
Və biz kimi uzun kimi deyərək edirik Bu null terminator deyil.
Beləliklə, siz almaq qədər davam simli sonuna.
Bir pointer yeniləyin.
Belə r, bu, həqiqətən bir yeniləmə olacaq hər dəfə bu char, çünki,
char *.
>> Belə ki, onun vasitəsilə getmək olacaq.
Bu yeniləmə olacaq.
Bu çalışır ilk dəfə Belə ki, Bu saat burada olacaq.
Bu yeniləmə olacaq.
>> Bu bir olacaq.
Bu barədə və s p, y olacaq və.
Biz counter yeniləyirik.
Bu son çatdıqda, onu yalnız kazanılmış nə qədər görüntüler.
Bəli.
>> Auditoriya: Bu sayar So sağ biri kimi yer?
OK.
>> HOPARLÖR 1: belə düşünün.
Bir sual ki,
>> Auditoriya: [işitilemez].
>> HOPARLÖR 1: Heç bir narahatlıq.
Bu mən bunu.
Bütün hüquqlar, belə bir şey anlamaq bir sıra ilə,
siz də bir kimi müalicə edə bilər pointer serialların yalnız çünki
yaddaş davamlı ləkələr.
>> Belə ki, eyni şəkildə müalicə edə bilər.
Siz onları manipulyasiya edə bilər göstəricilər ilə, çox.
Belə ki, əvəzinə bu, bunu halda, analoji şey
olacaq array 0 1 bərabərdir.
>> Amma eyni şəkildə bir string müəyyən edilir
harada başlanması ilə ilk xarakter,
bir sıra tərəfindən müəyyən edilir onun ilk element.
Çünki biz bilirik, biz istəyirik zəmanət, bu
davamlı olacaq yaddaş blokları.
Bizə bunu etməyə imkan verir nə.
Biz davamlı olduğunu biliyorum yaddaş blokları.
>> Bu halda belə, dereferencing tərəfindən bizə deyir ki, yalnız array,
OK, bu başlanğıc gedin Burada olan array.
Belə ki, bir bərabər bilərsiniz.
Və bu halda, nə üçün array Siz bir yeniləmə zaman növü deyil
yalnız yenilənməsi kimi növbəti index.
Siz edə bilərsiniz ki, çünki array var bilirik.
Belə ki, nə qədər bilir pointer təkmilləşdirə,
onu belə yeniləmək üçün nə ünvanı növbəti slot da olduğunu.
>> Belə ki, bu, yalnız fərqli bir yol array 0 1 bərabərdir yazılı,
array 1 2 sıra bərabərdir bracket 2 3 bərabərdir.
Bu bu barədə düşünmək üçün başqa bir yoldur.
Onlar davamlı Çünki yaddaş blokları,
ya onlara müraciət edə bilərsiniz array notation-- tərəfindən
Mən şəxsən easier-- tapmaq lakin bəlkə
Siz manipulyasiya etmək lazımdır ciddi yaddaş ünvanları ilə.
Və bu ki, nə olardı yoldur.
Kimi cür daha Siz nə edə bilər sərin şey
Siz etdiyiniz bəlkə bir şey qarşı həqiqətən həyata keçirəcəyik.
>> Mən 61 istifadə edin.
Siz uşaqlar yəqin ki, ehtiyac yoxdur çox çox narahat.
Amma istəyirsinizsə, 61 gələn il almaq.
Biz ev uzanır uşaqlar istəyirik.
Mən bilirəm ki, uzun.
Dynamic Memory Allocation-- belə ki, bir bilirik
şeyi biz zamanı söhbət edərkən birlikdə ilk ikibölməli,
biz svop baxdı funksiyası o idi
bizim əsas funksiyası kənarda.
Və biz bu dəyərləri keçən edildi ki, səmərəli nüsxə idi.
>> Və svop dəfə başa icra, yalnız bir yığın buraxdı.
Unutmayın, biz bir mübadilə üçün çərçivə yığın.
Bu yarpaqları və o dəyərləri ilə tərk.
Onlar getdi.
Biz bir şey edə bilmədim onları biz və kədərli idi
biz dəyərlər dəyişdirmək bilməz.
>> Ancaq mən sizə göstərilən C kimi yaddaş üzərində hakimiyyəti var.
Beləliklə, siz nə edə bilərsiniz edir burada yığın şeyi ayırırlar
ki, qədər orada qalacaq başqa onlara.
>> Onlar yaxşı uşaqlar kimi istəyirik.
Onlar orada qalmaq.
Onlar tərk etməyin.
Siz etdiyiniz qədər orada qalmaq lazımdır kimi, OK, siz getmək bilər.
>> Yığını şeyi Halbuki, who-- Onlar yaramaz uşaqlar kimi edirik.
Istədiyiniz zaman onlar yalnız qaçmaq lazımdır orada olmaq və onlar getdilər.
Siz onları geri ala bilmir.
>> Beləliklə, biz olacaq That yığın , malloc və pulsuz haqqında danışmaq
Mən əminəm uşaqlar deyiləm mühazirə haqqında eşitdim.
Və əsasən bir yoldur çox israrlı məlumatlar var.
Beləliklə, siz data saxlaya bilərsiniz ətrafında kimi uzun istədiyiniz kimi.
Mhm.
>> Auditoriya: siz yığın müəyyən və stack edə bilərəmmi?
Onlar hər şeyi qoymaq üçün yerləri kimi?
>> HOPARLÖR 1: Belə ki, onlar edirik əsasən onlar izlersin
biz yalnız yaddaş istinad yol.
Belə ki, yığın yalnız burada yerləşdirir yaddaş, dinamik ayrılıb
stack istinad halbuki çərçivəsində yığın daha çox
Ən çox mərkəzi olan həqiqətən çalışan funksiyaları.
Siz, həqiqətən, nəzarət yoxdur.
>> Böyük fərq, siz nəzarət var yığın üzərində istəyirsinizsə.
Siz yığını üzərində az nəzarət var.
Yığını asılıdır funksiyaları çalışan,
və sifariş olan onlar run, və hər şeyi necə qaytarılır.
Yığın ilə Halbuki, kimi biz, demək olar ki, görəcəksiniz
OK, Mən bu dəyər olmaq istəyirəm ətrafında qədər başqa sizə.
Siz qurtarmaq üçün icazə verilmir.
Siz yalnış icazə deyilik.
Siz ətrafında saxlamaq olacaq kimi uzun Mən sizə kimi.
Siz yığın boss olmaq üçün əgər bəlkə stack-- isə
kimi yolu kandırmak Siz boss ola bilər.
Lakin olduqca.
Və həqiqətən, yalnız yaddaş var.
Bu, sadəcə müxtəlif yolları var xatirəsinə istinad.
>> Cool.
, Necə ki, Belə ki, yaddaş nəzarət.
Bu malloc ilə var olan Siz istifadə etmək olacaq.
Belə ki, yalnız qısa yaddaş ayrılması üçün.
Bu bütün var.
Digər sərin bir dəstə var sonunda alloc var ki, funksiyaları,
və onlar müxtəlif şeylər üçün durmaq.
>> Əgər saxlama lazım Belə ki, lazımdır belə ki, cari funksiyası çəkmək üçün
zaman cari ki funksiyası, qaçır
Siz hələ məlumatlar var ki, bu var, siz malloc istifadə etmək istəyirik.
Bu yığın onu başlamaq lazımdır.
Və dediyim kimi və saxlamaq Siz orada saxlamaq lazımdır, deyərək
başqa demək qədər, burada əhəmiyyətli şeydir.
>> Belə ki, bir şey qeyd, və ki, adətən həqiqətən vacibdir
Bu sizeof ki, istifadə etmək super faydalı
növündən asılı olaraq, çünki maşın siz yayınlıyorsanız,
Bu müxtəlif məbləğlər ola bilər Bu edir ki, yaddaş.
Beləliklə, siz həmişə belə ölçüsü istifadə etmək istəyirəm siz asılı maşın deyilik ki,
ki, kodu olacaq hər hansı bir maşın axır.
>> Və yalnız bir hissəsi yaxşı yazılı kodu.
Bir maşın üzərində işləyir əgər, lakin digər hər hansı,
Proqram necə faydalı idi?
Beləliklə, siz həmişə istəyirəm əmin olun və sizeof istifadə edin.
>> Auditoriya: Belə kimi ki, 10 düym [Işitilemez] ölçüsü?
>> HOPARLÖR 1: Bu 10 ints ölçüsü.
Bəli.
Belə ki, ints ölçüsü qayıdacaqlar bir int nə qədər görür.
Və ya char ölçüsü necə çox bir char almaq yoxdur.
Və sonra neçə blokları ki, siz istəyirsiniz?
>> Bu halda belə, bir şey istəyirəm biz 10 ints saxlamayın.
Və asılı olmayaraq işləyəcək maşın, hansı sərin.
Belə ki, necə çox bytes olacaq həqiqətən sizə?
Quick riyaziyyat.
>> Auditoriya: 40.
HOPARLÖR 1: 40.
Məhz.
Belə ki, böyük bir şey.
Pointer ya malloc null qayıda bilər.
>> Belə ki, yenə, həmişə yoxlamaq Bu null geri görmek
Siz cəhd və bir şey əvvəl.
Siz cəhd və dereference əgər İndi bu göstərici,
yalnız segfault olacaq Siz getdi və cəhd çünki
Siz olmamalıdır zaman null toxunmaq.
Belə ki, həmişə null kontrol.
Yenə də, bütün edə bilərsiniz.
>> Bu null geri bilər.
Ya əgər bu null qayıtmaq lazımdır kosmik həyata, və ya hər hansı səbəbdən
bəzi yaddaş səhv qaçdı.
Bu bəzən yalnız null qaytarır.
Belə ki, yalnız onu yoxlamaq lazımdır.
Yəni, bütün bu slide deyib var.
Və sonra biz nə Burada pulsuz zəng edir.
Eyni şəkildə hesab edir ki, əgər Bir faylı bağlamaq lazımdır bir fayl açmaq,
əgər malloc yaddaş, Siz pulsuz yaddaş olmalıdır.
Və uşaqlar olacaq həqiqətən cool stuff etmək.
>> Və siz çalıştırabilirsiniz bir proqram var Əgər yaddaş sızması əgər görmək.
Amma yaddaş sızma istəmirəm.
Bu, həqiqətən pis.
Just mess up şeylər.
>> Bu yalnız proqramlaşdırma kimi bunu pis dizayn səmərəliliyi üçün müdrik.
Amma bu yalnız cür də var Sizin kompüter üçün pis.
Belə ki, yalnız pulsuz şeylər Əgər siz onları malloc zaman.
>> Siz uşaqlar burada symmetries baxın.
Super sadə.
Just sonra pulsuz və nə sizin pointer,
nə adı Sizin göstəricisidir və bu,
sizin üçün azad qayğı olacaq.
Cool.
>> Sonra biz bu var.
Belə ki, biz yalnız olacaq Bu proqram vasitəsilə gəzmək.
Və sonra uşaqlar edilir.
>> Belə ki, [Işitilemez] yalnız əsas.
Beləliklə, biz bir int * göstərici var.
Beləliklə, biz bir göstərici var ki, ints keçirmək olacaq.
Və neçə ints aça gedir?
Yalnız bir.
Bir int ölçüsü.
>> Biz görmek üçün yoxlamaq pointer çünki null deyil
biz bir şey yoxdur demək istəyirəm edir.
Bu pis.
Belə ki, biz bəzi səhv çap yaddaş, ən tez-tez 1 qayıtmaq
Sizlərin kimi istifadə olunur.
>> Və sonra biz burada var Bizim göstərici dereference.
Belə ki, biz saxlamaq olacaq deməkdir Bizə verilən yerdə bir şey.
Int * pointer, və ya malloc, qaytarır bu kənara harada ünvanı
Sizin üçün yaddaş.
Belə ki, əsasən Siz əgər qədərdir verilməsi
bir dəstə haqqında düşünmək bir məhəllə evləri
Siz qoymaq istəyirəm ki, mebel da, malloc
OK kimi, almaq üç ev getmək üçün.
Və siz verir ev üç ünvanı.
>> Belə ki, bu indi, bu pointer mağazaları ünvanı,
ev ünvanı saklar.
* Ptr vasitələri, OK, mən evimdə edirəm.
Cool.
Mən bəzi tam almaq lazımdır.
>> Belə ki, kimsə üçün xahiş edirik indi mebel vermək.
Belə ki, bəzi int almaq.
Və sizin pointer qoyur harada işarə edir.
>> Və o, yalnız izləri həyata, siz hər yerdə daxil.
Və yenə, istinad.
Belə ki, bu, bu getdi kimi müraciət və orada nə gördüm.
Cool?
>> Və sonra əlbəttə biz göstərici azad.
Pointer azad unutmayın.
Null kontrol unutmayın.
Pointer azad unutmayın.
Siz xatırlayıram iki şey var Bu, ya Yadınızdadırsa lazımdır.
Bəli.
Auditoriya: [işitilemez] stuff kimi, char * s.
Biz bu necə azad heç gəlib?
>> HOPARLÖR 1: Hm?
>> Auditoriya: strings kimi o edirsiniz?
Siz strings bildirib yalnız char * s kimi, sağ?
Belə ki, niyə biz strings pulsuz deyil?
>> HOPARLÖR 1: Siz yalnız Pulsuz Siz mallocing edirsinizsə.
Auditoriya: Oh, siz mallocing edirsinizsə.
HOPARLÖR 1: Beləliklə, malloc pulsuz iki şey
həmişə birlikdə olmalıdır.
f açıq, f yaxın, iki şeyi Siz birlikdə olmalıdır.
Hər iki halda, null kontrol.
Bəli.
>> Auditoriya: Belə ki, pulsuz yalnız başqa bir şey imkan
sonra saxlanılır Bu proqram istifadə edir?
>> HOPARLÖR 1: Bu, yalnız deyərək, OK, Mən bu ilə bitirdim.
Siz ətrafında saxlamaq lazım deyil.
Əks halda sizin kompüter olacaq yalnız cəhd kimi və onu saxlamaq.
Və sonra çalışır can not sonra yaddaş məsələlər daxil.
Siz həmişə, çünki onu azad etmək istəyirəm OK, mən, kompüter deyir
yaddaş bu spot ilə aparılır.
Siz geri ola bilər Mənim üçün daha sonra istifadə etmək.
Cool?
Bəli.
>> Auditoriya: Belə ki, biz% d istifadə yalnız ikiqat çünki geri gəlir,
və ya niyə [Işitilemez] That.
>> Auditoriya: Siz% i istifadə edə bilərəmmi?
>> HOPARLÖR 1:% i istifadə edə bilərsiniz.
Son dəqiqə suallar?
Durmayın.
Auditoriya: Mən yalnız bir tez sual var.
Belə ki, Ptr dəyişən, that kimi, int * Ptr = malloc ilə,
ki, yalnız var deyərək yaddaş bir yerə işarə
HOPARLÖR 1: [Işitilemez] istəyirsiniz?
Auditoriya: --that the var ölçüsü kontormerinin Təfərrüatlar yox, OK.
Amma bu yalnız bir yerdə işarə yalnız dörd bayt kimi yaddaş.
HOPARLÖR 1: Right.
Int deyir, belə ki, ölçüsü malloc, OK, Mən çıxmaq getmək üçün gedirəm,
Sizin üçün yaddaş dörd bayt tapa bilərsiniz.
Bu dörd hesab edir ki, zaman yaddaş bytes, onu
Siz ünvanı geri verir Bu başlayır harada,
ki, saxlanılan nə pointer, və ya Ptr edir.
Yaxşı.
Siz uşaqlar ən az qarışıq baxmaq Mən göstərici haqqında danışmaq zaman insanlar,
mən indi olduqca yaxşı hiss edirəm.
>> Bütün hüquqlar.
Həmişə olduğu kimi, uşaqlar bütün olmalıdır İndi sizin pset2 notları kazanılmış.
Mən bilirəm bəzi bitkin var deyir şeylər, etibarlı deyil formula
və ya bir şey.
Siz ki, bütün alıyorsanız Sizin notları mənim yanımda etibarlıdır.
Mən göndərə bilərsiniz Sizin siniflər ekran.
Just me həmçinin əgər bildirin Hər hansı bir siniflər və ya bir şey yoxdur
mənada görünmür.
Mənə gəlib.
>> Mən sizin super fəxr oldum uşaqlar artıq belə onu saxlamaq.
Və həftənin yaxşı istirahət.
Mən bəzi görəcəksiniz əminəm ofis saat Siz.