ZAMYLA陳:嗨,大家好。 歡迎來到部分。 今天只是要所有的測驗 檢查您的測驗週三。 我希望大家記住 他們在週三進行測驗。 如果你沒有,那麼, 現在你已經提醒。 因此,週三一定要顯示出來 類或其他的住宿, 有必要的。 你們都將是真棒。 這將是巨大的。 而且我會盡我所能 幫助今天準備為您的測驗 現在。 而且如果你不知道, 有一個廣泛的課程審查會議 今天在7時 西北實驗室B103室。 你可以再次看到我的安可為 我將帶領該審查會議的一部分 也。 所以,如果你不能得到足夠的我 現在,你可以再來今晚。 好吧,所以首先第一件事情。 之前,我們只是一些測驗技巧 實際上下潛到審查。 因此,對於任何考試,實踐 一定會幫助你的。 有從過去的考試 六,七年在那裡, 所以這是一個大量的實踐 材料你們有。 而事實上,今天真的只是 將要會在任何議題 那你們有還有疑問 通過實踐工作的問題 從測驗為零。 所以,我會扔了競猜零 從去年開始就在這裡, 我們可以通過任何問題工作 那你們想。 所以練習。 你會開始,今天做的事情。 代碼在紙面上。 所以是的,如果每個人都 居然可以全身而退 紙,那將是巨大的, 因為你不 要在您的計算機上 考試,寫出來的代碼手工 往往是困難得多 比你想像的。 你已經習慣了只 看到它,並鍵入它, 你有你的編譯器 幫你當你有錯誤, 但你沒有得到,關於考試。 因此,它實際上很重要 能寫出來的代碼, 並做了肌肉記憶 它的手會真正幫助你。 所以,我們正在一點點接近。 今天是星期一。 考試是在星期三。 但是,如果你有時間, 肯定需要一 從過去一年的考試中 下一年的時間限制之前 的一個半小時​​。 剛敲了一小時 和時間的一半, 和自己坐了下來, 通過問題只是工作 因為如果你是真正 服用它,因為一個 那我們聽到的最大的事情 該測驗是,它們是非常長的。 這是一個很多材料。 有很多問題, 大多數人可能無法完成。 我知道,我完全沒完成 我的小測驗,當我把這個類。 關於這一點,作為少 舒適的節, 明白這當然是指 以滿足各個層次的人。 整個原因,我們必須拆分 不太舒服,地方之間的, 和更舒適是 種使之更加公平。 如果你是不舒服,這是 沒有必要本身得到的一切。 就像如果你能得到 一切,你可能會 是在更舒適的部分。 所以,很顯然不打自己了 太硬,如果你不能完成考試。 請相信我,我沒有做到這一點。 我仍然是一個集中器。 我還在幫助教課程。 你會沒事的。 行。 最後,得到一些睡眠。 顯然,任何考試 我們經常說這個。 臨時抱佛腳前一天晚上 而沒有得到任何睡眠 確實不是 - 也許,如果是 為你工作,去了。 但對於絕大多數 人,得到一些睡眠, 讓你的大腦休息和恢復 未來在考試前, 將真正幫助你。 也將有近 一定是糖果的考試, 所以你必須期待。 你們要做大。 它會好起來的。 而現在,在接下來的一個半小時​​我 會嘗試預習,你是最好的,我可以。 所以,我從基本的幻燈片 所有的部分到現在。 我不會去通過 所有這些,因為這是不 在一個半小時​​可行,以及 通過實際問題的工作。 所以不是我的主題列表。 這些都是所有的東西 我們可以考考你。 如果有什麼事 真正跳出 想要走了過來,說你 要我走了過來概念, 我可以嘗試給 您概述那裡。 或者,如果你想跳就在以 做練習題一起, 我們可以做到這一點。 這是給你們。 有沒有那麼多的你。 所以這是什麼,你們喜歡做的事。 我想成為最 有用的走向你們。 所以,我就讓你只是看看。 聽眾:有一件事是 我們不斷圖表 說對棧和堆。 僅落後於整體思路 這一點,是什麼意思。 ZAMYLA陳:是的,確定。 這是所有的方式在 年底,所以讓我翻閱。 聽眾:我們不必 現在就這樣做,但不管。 ZAMYLA陳:有沒有 anything--這一個。 這是一種模糊的人嗎? 聽眾:是的,我是第二個。 並能我們也做緩衝區溢出? ZAMYLA陳:緩衝區溢出? 行。 因此,緩衝區溢出是相當 易只是說說。 它基本上是緩衝你想想 一些數組的內存,你有,對不對? 我們通常講 緩衝區溢出時 你不檢查多少錢 用戶投入,對不對? 這種想法是 與緩衝區溢出 他們把在遠 太多的數據的空間 你已經分配給他們,對不對? 所以,如果你說,給 我的一些消息,我們 假設他們打算給 我們一個合理的長度的消息。 也許幾行,諸如此類的東西。 因此,我們不檢查。 相反,他們養活我們的 整本書就是一個消息, 和溢出的量 我們已經分配給這個空間。 什麼情況是它可能會覆蓋 這是不應該的地方。 所以我知道馬蘭教授說: 一些關於緩衝區溢出攻擊。 所以這就是用戶將輸入 在希望中的一些數據量龐大 他過去覆蓋 您的緩衝區的末尾 並取代something--我不知道 我我們這些幻燈片在這裡。 我不認為我們有 這些幻燈片在這裡。 但基本上,他改寫 內存的某些部分 這讓他有機會接觸 到您的計算機的某些部分 你會不會 通常有機會獲得。 最重要的事情有 緩衝區溢出是剛剛 要明白,它 當你不發生 檢查多少錢你 用戶把英寸 如果你是那種不 維護反對, 並在其最簡單的 的東西,它只是你的用戶 輸入巨量 企圖數據 覆蓋一些安全 你的內存的一部分。 這就是它。 因此,這在這裡,堆棧和堆。 基本上所有這僅僅是 的存儲器中的表示 和那裡的東西都存放。 這是一種真正的 所有你需要知道的。 最大的事情 你需要知道的 that--如果讓我看看 這裡有個better--。 因此,這是堆棧在這裡。 所以棧,是因為有 所有的功能 你調用在任何給定的時間。 和什麼是重要的要記住 上週去關閉使用malloc 是你真的沒有 必要的控制權。 這一切都依賴於一定的時 函數執行。 並且當它們被執行時,它們 有所謂的堆棧幀 那去了這裡。 因此,那種一切發生 沒有你的任何真正的投入。 你寫你的程序, 你讓它運行, 與層疊種取 關心本身,因為它需要。 所以,如果在主你打電話 多維數據集,將在這裡通過了。 這將創建一個框架。 但有明確你做什麼 創建比其他棧幀 寫開頭的函數,OK? 是什麼樣的你下 控制是使用malloc堆。 所以每當你malloc的東西, 你是從堆取內存。 那就是記憶,你 有,由於缺乏一個更好的詞, 顯式控制, 因為記得使用malloc 它基本上有 直到你說,否則。 對於那些你誰 觀看節最後一周, 它的存在,直到你告訴它去了。 它會在那裡,除非 否則不能說。 所以堆只是一些 你能想到的內存 你有控制權。 而這些僅僅是 兩個不同的大事情。 除此之外,你不應該有 要過分擔心堆棧和堆 疑問或通常更公正 如果你有本地的參數 或函數會是 在堆棧或堆。 顯然,在這種情況下 這將是堆棧。 如果你mallocing的東西, 那是哪裡來的? 堆。 如果你看一下練習測驗,那些 一般問題的類型 他們有。 您不必擔心 太多了。 你進入更明確 關於堆棧和堆 稍後或在其它的CS類。 所以只是有樣的 什麼是總體思路 會好的,這是我 剛種走了過去。 任何其他議題? 是嗎? 聽眾:你可以走了 再次三分球真的很快? ZAMYLA陳:指針? 你想概念 指針概述 或者你用指針練? 有點像語法:受眾。 ZAMYLA陳:語法? 是啊。 OK,我們到達那裡。 是啊,所以這只是種東西 當你有一個遞歸函數, 每一次遞歸函數是 所謂的,它只是增加了其它的堆棧幀。 相當多的例子 怎麼,你真的不 有超過控制 在您的堆棧幀。 OK,指針。 好吧,所以創建的指針。 請記住,這只是輸入的明星。 所以,無論數據類型 你會被指向。 因此,這將是一個指向整數的指針。 這將是一個指針,指向一個char。 這將是一個指針,指向一個float。 因此,它基本上是什麼 你希望它是指向, 明星是如何聲明的指針,好不好? 不過,那顯然就有點 當你有麻煩的指針 或者你有什麼明星。 所以,最大的區別是 當你declaring-- 所以我們有some--這樣 這需要一些INT明星。 因此,這是一些指針 要求X為int,對不對? 所以請記住這是什麼呢 這是調用系統X。 並且這將 有一些地址,對吧? 所以,我們只能說這是我們的地址。 指針持有地址。 那麼,這說的是,在這 位置,我們存儲一個int。 因此,另一種方式,我們能想到的 這是這是某些整數。 我們還沒有真正分配給 做任何事,但它只是一個int。 因此,我們可以做的是,如果我們不出演X 等於5,這將成為一個5,OK? 這是說去什麼x是 指著,所以去這個地址 並使其等於5。 因此,我們分配5到這個地址,對吧? 如果你這樣做的話, 這給我們的地址。 這是操作者的地址。 那麼,什麼是x的地址? 我們不知道。 我們還沒有分配它的地址。 我們可以說這是some--現在我們給 它的地址,所以地址為4。 而實際上,如果我們經歷的東西 種這樣的,我們所做的事情。 所以通過這裡 - 我覺得工作 它幫助,如果你畫出來的指針。 如果你對你的考試,我 強烈推薦繪圖框。 所以這第一個,詮釋x等於5。 這只是意味著我們有一些 放置在內存中是5,對不對? 而我們在這裡表告訴我們 它的地址為0×04。 然後我們創建一些指針。 因此,讓我們打破這一次。 因此,這帶來了一些 盒為int,對不對? 這是怎麼回事舉行 在它的一些地址。 因此,這是一些指針。 這粉筆是非常小的。 因此,我們在這裡有一些指針。 和我們同桌告訴我們 這是地址為0x08的。 涼爽。 我們正在分配 它到x的地址。 請記住,指針持有地址,OK? 因此,如果我們要舉行的x,我們有 使用地址運算符,它 為符號,以獲取地址 的x,對在這種情況下,0×04。 然後,如果我們有 一些INT副本,這只是 創建一些其他的盒子 擁有一個int稱為複製。 如果我們給它分配給this-- 所以這是引用它。 所以說去什麼 地址指針持有。 指針保持這個地址, 所以我們會去在這裡, 我們說好,有什麼的呢? 這是5。 所以副本將成為5。 有意義嗎? 如果我想指定 這只是指針。 什麼指針實際上等於? 這純粹是什麼 指針包含,對不對? 然後,如果我這樣做? 什麼副本呢? 聽眾:0x08的。 ZAMYLA陳:是的,在 我們的指針的地址。 的任何一部分 需要被重新解釋? 涼爽。 肯定是有非常 在測驗一個有趣的問題 我們可以通過這 為您提供了更多的實踐。 從上週的傢伙可以 告訴你,這不是那麼糟糕。 我們通過一個完整的有 圖中,每個人都做得很好。 好了,所以這是概述 的指針的語法。 最重要的事情是如何理解 創建它們,做參考, 和,確定地址? 涼爽。 在任何其他的話題 我們將深入實踐。 此外,如果我們正在經歷 實踐中的問題 這裡面的東西,你想要一個 複習時,我們可以做到這一點。 你有什麼? 聽眾:結構體和鍊錶。 ZAMYLA陳:結構體 和鍊錶,確定。 如此結構。 實際上,我們打算 在今晚了。 OK,所以結構。 結構基本上 只是一種方式為你舉行 不同類型的多個值。 所以用一個數組我們 收縮到一個數據類型。 我們的數組要么有只是數字, 或者僅僅是字符,或僅僅是花車。 但是,也許你需要 包含不止於此。 也許你需要的,如果要hold-- 你在談論一個學生, 你將擁有自己的房子,他們的 ID號,他們的年齡,他們居住的地方, 對不對? 而所有這些都 不同種類的類型。 所以,你不能存儲 這些都在一個數組中。 所以你能做的就是你 可以創建一個結構,它 你能想到的是你 自己的個人數據類型。 而不是那麼僅僅有整型 而不是僅僅有花車和, 你可以有一個類型的學生 擁有所有這這些領域。 因此,我們初始化方式 我們的結構is--實際 因為我的寫作是可怕的,我們 要過渡到打字。 嗚。 好了,如果我們想創建一個struct-- 我只是把它倒在這裡。 無視於任何主 我們將在以後使用。 所以,你想要做的方式 它是用typedef結構。 讓我們只需要調用這個學生 因為這是我使用。 好了,類型定義意味著你 定義一個新類型,行嗎? 也有細微的差別,當你做進 只是一個結構與一個typedef結構。 對於所有意圖和 的目的,你們只是 要承擔他們 大致相同,只是 使用typedef結構現在。 它會成為這樣更明顯的 下一個P所設置的這些差異, 但我不認為你需要 擔心現在。 我寧願你 知道如何創建一個, 訪問它,並分配[?值。 ?] 一種新型結構,並 我們要求它的學生。 所以,我們就大功告成了創建此之後, 對於所有意圖和目的, 你將有一個名為學生類型。 你可以把它僅僅作為一種類型 就像一個int或浮點或字符。 這只是另一種類型,好不好? 所以在這一塊,我們有什麼? 我們也許有一個名字。 因此,也許我們需要一個字符串名稱。 我們有可能為int這是一個ID。 此外,我們還有另一 這就是電話號碼。 我們已經some--讓我們來看看。 還有什麼可能我們有嗎? 我們將有一些字符串在他的家裡。 所有的事情,有個學生了。 所以這個現在創建一個結構。 那麼,如何可能我們創建了一個學生嗎? 如果我們有一些變量是 要談論沃克在這裡, 所以我們have--我們只是 要調用此walker。 他需要的類型。 什麼是你喜歡的類型? 聽眾:學生。 ZAMYLA陳:學生。 因此,這只是創建一個對象,你可以 想擁有這一切。 您剛剛創建了一個學步車學生。 所以,現在我們需要能夠 指定所有這些,對不對? 因此,沒有人記得如何 我們一個結構中訪問? 聽眾:期。 ZAMYLA陳:沒錯時期。 因此,如果我們想分配 他的名字,我們可以做到這一點。 顯然,這會 在這裡be--這部分將 以內為主,所以 居然讓我做到這一點。 此聲明上述主讓 我們可以在主要使用它。 所以,現在我希望它做的ID, 而我們只是做一些在那裡, 然後我們會分配一個房子。 巴姆。 涼爽。 所以,現在我們應該永遠需要訪問 任何後來on--也許we-- 如果我們需要訪問什麼, 我們只是做一個int副本ID。 我想複製 沃克的ID到這一點。 我會如何做呢? 你需要助行器中訪問 結構為[?去那?] [? E']。 並以同樣的方式,我們 在這裡,如何分配它 也許我們訪問它的時候,我們要 給該值到別的東西? 聽眾:Walker.id。 ZAMYLA陳:是的,沒錯。 這就是幾乎所有的 你需要知道的結構。 你只需要想想 它們作為另一個變量。 基本上是一個創建 自己的變量類型,好不好? 您可以使用它來聲明 變量以任何方式。 在這裡,沃克仍然是一個變數。 它只是一個類型的學生,而不是現在 ,一個int類型,或字符串類型 或char類型。 如果有一個簡單的方法來說話 關於結構,它真的只是一個 創建自己的數據類型 這可以讓你組 所有這些不同的 樣的數據一起。 這是否有道理? 行。 這和訪問點使用。 幾乎所有你所需要的。 OK,在哪裡我的PowerPoint中去? 這裡是。 嗯,這是奇怪的。 啊哈。 OK,爽。 任何其他的事情還是我們 要前往練? 實踐? 行。 真棒。 我要退出了。 如果在任何點期間 練習題, 我很高興地改造 並通過東西。 所以,我有競猜零在這裡。 如果你們想拉 它在您的計算機上, 就像需要五 幾分鐘瀏覽。 也許選擇一些頂級 你想問題,走了過來。 如果你們不能決定,我們只 慢慢地開始通過他們的工作, 但我敢肯定,有一些將要 你是特別的問題 熱衷於談論,並有 我的工作,通過與你的所有。 因此,只要繼續前進,走五分鐘。 翻閱。 這是從2013年的測驗。 聽眾:零? ZAMYLA陳:是啊,測驗為零。 我們不是在做測驗1東西。 我們會做,在一兩個星期。 也為那些你們誰 進來晚了,我們有糖果, 所以做你們要糖果? 聽眾:當然。 ZAMYLA陳:我只是 要通過身邊。 嘿,如果你們到這裡來 早期,你會得到更多的糖果。 沒關係。 本,你要糖果? 你想點? 還有,如果士力架 有人想士力架。 我會留下來在這裡和這裡。 隨意。 你想了嗎? 聽眾:所有設置。 謝謝。 ZAMYLA陳:我有一個不錯的 小樁有開頭。 你們去參加測驗和 我到有一個測驗分級派對。 這是一片混亂。 900考試。 這將是這麼多的樂趣。 將是巨大的。 我敢肯定這是1 最大工作人員粘接 在今年的夜晚。 有沒有人在做測驗零 去年又出於好奇? 聽眾:它的一部分。 ZAMYLA陳:它的部分,確定。 你對其中任何一個問題嗎? 觀眾:我已經 去了辦公時間。 謝謝你,雖然。 ZAMYLA陳:嗯,希望 它仍然是種有益的。 你什麼時候去 辦公時間是什麼? 聽眾:我的TF有他們今天下午。 ZAMYLA陳:哦。 誰是你的TF? 聽眾:弗雷德[? Wujaya?]。 ZAMYLA陳:有這麼多的轉錄因子。 這麼多。 行。 任何人有任何開始,我可以 記下我們要工作? 我假設指針 1用表。 去了。 聽眾:也許交換機之一。 ZAMYLA陳:所以12號? 我認為數字8和9很可能是 那些人想要走了過來。 聽眾:而10和11。 ZAMYLA陳:而且你們知道 你的筆記一頁,對不對? 聽眾:是啊,所以什麼 我們可以把上。 ZAMYLA陳:你自己也可以 把你想要的任何東西。 並且它可以鍵入。 據我記得,我們​​進行了類型化的。 聽眾:你可以做 背部和兩側? ZAMYLA陳:是啊,兩側。 因此,像堆和 [?後端?]堆,你的跑步 次。 有用的。 有關可能的小事 指針來提醒你。 語法的東西。 其就像一個骨架 程序可超有用。 我知道,我總是忘了什麼 我應該寫INT為主, 因為我一直只是複製 我以前的P組貼 或者它已經存在,所以 我從來沒有真正寫的, 所以具有可超有用。 好了,我們為什麼不 先從8號呢? 行。 行。 因此,考慮下面的程序。 當我們看到這麼明顯 指針,這可能 一個好主意,開始繪製,對不對? 我想知道我所有的 大支粉筆去了。 這是種煩人。 所以,我們在這裡的一些交換功能 那將採取兩個指針。 所以在這種情況下,它們 實際上應該是切換 事情與我們原來的交換 函數,只用了複印件。 那麼,它會做的 is--讓我們先從主, 因為這是1。 因此,我們有一些INT×1。 我們有一些Ÿ這等於2。 然後我們有一些互換 那將採取這些。 讓我們看看我們是否在這裡。 而在我們的table--哦男孩。 我怎麼做呢? 我要吸取我的表在這裡。 勉強使其存在。 幾乎沒有做它。 1,2,3,4,5,6,7。 他們給我們1為1,1 2。 涼爽。 真棒。 因此,3。 這裡面的[?一個1?] 行。 然後x的地址為0x123。 而Y是Ox127。 涼爽。 行。 我希望你們在這方面努力 就只是like--工作 與你周圍的人。 我想我已經說 當我成立。 在它的工作。 試圖通過它的工作 自己一兩分鐘, 然後我將它和你在一起。 因為你是真正的唯一途徑 要學習就是做你自己。 別擔心。 祝好運。 OK,我們為什麼不慢 開始通過這個工作。 因此,每個人都盯著一行,x為1。 2行後中,x和 y是1和2,對吧? 涼爽。 所以三線是哪裡的東西 獲得有趣的課程。 因此,我們在這裡所做的 是我們現在已經交換。 我們說的x和y有那些點 或者它們具有x和y的地址, 對不對? 所以在這種情況下,三個 什麼是a的值? 一個已經通過了,已經給出 x的地址值,對不對? 聽眾:1? ZAMYLA陳:所以我們把它添加到X? 什麼是X的地址? 聽眾:0x123的。 ZAMYLA陳:沒錯。 但究竟什麼是真正指向? 如果我們取消引用, 什麼樣的價值會不會得到。 聽眾:1。 ZAMYLA陳:那就 給我們1,原因是什麼 我們說是去這個 地址告訴我們的價值是什麼。 那麼,什麼將B? 聽眾:0x127。 ZAMYLA陳:沒錯。 所以它的y的地址。 然後呢[?提領? ?] 聽眾:2。 ZAMYLA陳:好了,現在4。 我們說一個是equal--現在好了,我們已經 做整型溫度等於一個明星。 那麼什麼樣的變化? 這裡只有一件事 改變在這裡。 它是什麼? 聽眾:溫度。 ZAMYLA陳:臨時。 因此,我們可以重寫所有這些。 這些一個好的策略 剛剛搞清楚 什麼樣的變化,因為最常見 這裡只有一件事,就是 要改變在任何給定的點,好不好? 因此,我們已經臨時指派。 現在,我們的下一個點,五,我們 取得明星等於星級的住宿。 還等什麼,現在的變化? 聽眾:一星。 ZAMYLA陳:一星,所以 一切保持不變。 又是什麼明星一個平等的? 聽眾:2。 ZAMYLA陳:2。 可愛的。 真棒。 OK,然後現在我們有 開始b等於溫度。 所以,唯一的變化是星級的住宿。 其他一切保持不變。 什麼是明星B等於現在呢? 你已經完成了表。 因為現在到了最後,如果說X 和y,我們知道,在這個point-- 我們知道,當我們 改一星2, 它說,這是什麼做的還算可以, 地址為0x123這裡,改變它。 現在,這是2。 然後在這一點上, 我們說好了,去星級的住宿。 所以去的地址在 0x127,並使其成為1。 所以,現在在非常時候結束 我們實際上回歸了主, 我們其實有x是 等於2且y等於1。 每個人都好有嗎? OK,爽。 9號。 你們在這方面努力。 我要成立一個董事會 因此,我們可以通過它借鑒。 這將是一個爆炸。 大表可以是 真正可怕的,我知道。 但如果你只是把他們一行 一時間,他們得到少了很多可怕的。 行。 所以,你知道,這將有 通過主首先,對到哪裡去了? x和y初始化和 然後嘗試交換它們。 因此,即使是掉上面的,真正的方式, 那張是,我們正在經歷為主, 然後它調用 高達掉,好嗎? 因此,每個人都知道這一點。 那麼,哪一個你 男人想下手? 有沒有人真的知道 關於其中之一? 甚至部分嗎? 為什麼我們不使用X開始? 什麼是我們認為X是? 聽眾:1。 ZAMYLA陳:1。 那麼,為什麼是2。 而這是因為 這裡的區別很大 是我們唯一 通過副本,對不對? 我們不通過引用傳遞。 因此,即使在結束時 這一計劃的x和y 住一樣的,因為他們 只是副本中的交換功能。 他們沒有真正改變,對不對? 那麼,關於A,B,和溫度? 聽眾:A是B。 ZAMYLA陳:A是B。 所以在這種情況下,為 x,它是1,對不對? 所以在這裡,我們通過它走。 所以,在開始時,一個與 b是1和2和不確定的。 所以,最初的臨時變 分配到一個,所以溫度是1。 一個等於b,那麼我們得到 2,和b等於溫度。 現在,我們得到1。 聽眾:在上一個其 交換符號x和符號年。 究竟是什麼意思呢? ZAMYLA陳:所以這意味著, 你是通過引用傳遞。 因此,這意味著你實際上 通過在那裡的地址 x和y的存儲位置。 聽眾:但是你不 換地址。 ZAMYLA陳:你不是 換地址。 你換什麼在其中。 比如什麼是在這個地址, 這就是為什麼它的工作原理。 與這一計劃在這裡是什麼 你做的是你要創建的副本。 所以,你有存在的x和y 作為自己的變量在這裡。 但是當你通過 這些掉期,它的 因為如果你正在創建 這完全是另外一套。 所以你從來沒有真正 動人的x和y。 聽眾:如果符號X是什麼東西在 x的地址,你會出演X是什麼? ZAMYLA陳:與號x是什麼時 x的地址,然後st​​ar--好, 在這種情況下,x不是指針。 聽眾:哦,好吧。 所以,你只能這樣做 因為它不是一個指針。 ZAMYLA陳:對。 你只能做明星 東西是一個指針。 也許你可以做的事情了 都沒有,但編譯您 做瘋狂的事情會發生。 而且我不完全 肯定會發生什麼。 您可以隨時拿 東西地址, 但你不能提領 東西是不是一個指針。 如果是有道理的,這是 一個很好的區分有。 所以不是太糟糕,不是嗎? 該表是希望 讓略少嚇人。 行。 啊,好玩的。 所以,現在,寫自己的代碼。 所以我打算讓你們的工作 在此約4分鐘, 然後我們可以談談 約的方式接近它。 隨意交談的人在你身邊。 另外,這是有意思的。 這就像一個所有女孩 部分現在。 非常令人興奮。 除了張。 但張是不是真的一節的一部分。 真棒。 完美的。 所以,我會給你幾個提示。 當你有這樣 多個字符,其中 你有別的東西 像123或1000的東西, 需要能夠循環 通過和每個轉換那些。 因此,有一對夫婦 你如何能做到這一點, 但你肯定會擁有 一個for循環的地方在那裡循環 通過它們,這是 有點像贈品 即使你調用strlen用, 哪一種是喜歡哦 也許你要使用的長度 字符串中的一些方式。 行。 那麼,你們認為可能是 我們想要做的第一件事情之一? 有一對夫婦的情況下在這裡 我們需要考慮到,對不對? 無論我們有什麼事情,就是空。 我們有什麼? 個案。 空。 我們認為其具有殼體 東西比09之外,對不對? 所以我們可以說有字母。 或者我們這是合法的情況下。 三種情況下想到的。 那麼,哪一個你認為可能是 一個最簡單的採取先照顧? 聽眾:空。 ZAMYLA陳:此案為null。 那麼我們該怎麼辦呢? 聽眾:[聽不清]。 ZAMYLA陳:是的。 什麼做我想做的事? 聽眾:返回0。 ZAMYLA陳:沒錯。 真棒。 行。 所以,現在情況有信 和的情況下,它是有效的。 實際上,我們可以照顧 在一個循環的這個,好不好? 因此從另一個角度做它 - 可能是什麼 一個簡單的方法來檢查它是否有效。 我們將不得不通過 每一個字母,做什麼? 聽眾:檢查是否是in-- ZAMYLA陳:對,你可以檢查 如果是0到9之間,對不對? 然後在該情況下 它是有效的,我們 去年底,通過迭代 我們的字符串反正,對不對? 那麼,為什麼我們不嘗試 它們合併成一個。 我們要遍歷 通過了字符串,並作為我們 做到這一點,我們將第一 做一個檢查,如果那封信看 或者,如果該字符是有效的。 如果是,我們要執行 操作時,我們需要將其轉換。 否則,將返回0,對不對? 所以,在我們這樣做,我們 可能需要一些變量 我們可以在端返回 這將是我們的實際值。 所以,我們要初始化 些值是0。 而這僅僅是我們如何開始。 所以,我要擺脫這一點。 那麼我們如何去 遍歷這個字符串。 顧客:循環。 ZAMYLA陳:一個for循環。 那麼,什麼是我們的? 觀眾:我是0。 ZAMYLA陳:嗯。 什麼是我們迭代,直到? 聽眾:第STR長度。 ZAMYLA陳:好了,現在還記得 還有一個更好的方法。 [聽不清]。 聽眾:是的,我們能做到n等於。 ZAMYLA陳:沒錯。 觀眾:我是小於n。 ZAMYLA陳:為什麼 將我們想要做的是什麼? 你還記得原因嗎? 聽眾:我們必須重新計算。 ZAMYLA陳:Becasue這樣你 只需要計算strlen的一次。 如果你這樣做我是小於的strlen S,這意味著它會重新計算 每時間長度 您運行的for循環, 這是不是一個巨大的成本 能源,但它的 更好的做法,試圖 做一次這樣的事情。 除非也許你有一個瘋狂的字符串 這是不斷變化的,在每一次迭代。 但是,如果它保持相同,保存。 行。 然後我加再加。 真棒。 我們對我們的方式。 聽眾:真的很快。 首先,讓我們說,我們只是 確實比第strlen的少我, 他們是我們的分級設計 在所有或正確性? 他們不是。 我們對分級的正確性 對於測驗,據我所知。 我不能讓一個完整的 保證,但在大多數情況下, 絕大多數是正確的,因為 你是下了很大的時間限制的。 設計通常是指 你有時間去思考 關於你的情況的風采。 好了,我們正在通過迭代。 因此,我們需要兩種檢查 看看這個字符是有效的 或者,如果我們能夠履行我們 正常的[? A至I?]功能。 我們擔心什麼 即在一秒鐘。 那麼,為什麼我們不take-- 如果任何人都可以想 約的方式來檢查 查看這是否是有效的。 我們知道這將是 如果某些條件下,對吧? 請記住,這是 在ASCII碼,因此如何可能 我們看到,如果它不是0,1, 2,3,4,5,6,7,8,或9。 聽眾:如果字母。 ZAMYLA陳:所以,如果將阿爾法 只是讓我們知道,如果它是一個字母。 如果他們給我們一個象徵,它的 還是不太去檢查。 所以,如果你拉你的ASCII 表中,我們知道,從0到9 是在一個段中。 請告訴我這些數字,他們 對應於可能的話。 聽眾:40。 ZAMYLA陳:所以範圍是喜歡40-- 聽眾:也許吧。 48至57。 我不知道。 ZAMYLA陳:40〜57? 聽眾:48,我想。 ZAMYLA陳:48〜57。 所以我們知道,那些ASCII symbols--如果ASCII值不 48至57, 它不是有效的,對不對? 所以,我們可以用它來 我們的優勢可能? 我們如何獲得 這封信,第一關? 我們如何訪問 這個這個角色? 聽眾:■支架我。 ZAMYLA陳:嗯。 因為我們能想到的 作為字符串數組,記住了。 那麼,我們想說的? 我們想,如果這樣說的 is--我會給你一個提示。 這是一個小於。 什麼你認為它 需要小於? 聽眾:57? ZAMYLA陳:47,對不對? 但它也代表了您一個0 在單[?輻條?],因為這是 字符0。 你也可以把47。 具有ASCII表,如 你看到的,只是一些 你應該對你的測驗表。 因此,如果是這樣的話,如果它是一個 比0--不見得少。 它只有兩種將是 小於或大於9。 所以,你可以填寫這最後給我嗎? 所以,還是I S是什麼,雷亞? 聽眾:大於9。 ZAMYLA陳:有。 這是否有意義 大家好,我們是如何到達那裡? 這些問題,他們就像一旦你 看到的解決方案,它就像哦,OK。 這就是為什麼練習會幫助你。 好了,我們返回0。 可愛的。 行。 否則,我們怎麼想幹什麼? 這是最有趣的部分 它是一個多一點 喜歡數學與CS在我看來。 沒有任何人有一個想法 對我們如何做到這一點? 因此,重要的是要 意識到的是第一個字符 我們正在採取將是 最高階位的,對不對? 所以,如果我們正在尋找轉換 123,我們第一次迭代 是將是1,但是我們需要 這是100到底對不對? 所以,有一件事你可以做的是, 與以後每位數 你拿,你乘以10的數值, 使得由一次到達終點, 一切都已經 向上移動,對不對? 所以第一次運行 它,你有1作為你的價值。 第二次你運行它,你 乘以10的數值。 所以,它現在將更新 10,你加你的下一個值。 然後乘上 10,添加你的下一個值。 這就是為什麼他們這麼一說 更像測試 數學算法與 CS,但我離題。 我不寫測驗。 所以,有一件事我們可以做的是我們 說值倍等於10。 所以,這是怎麼回事轉移 每一天,你的數字。 然後,我們只想補充。 我們希望在加什麼 我們剛剛得到的,對不對? 那麼,如何才能真正轉變我們 ASCII字符插入數字 它代表? 所以我們知道,0等於47,對不對? 所以,如果0是47,是什麼 就我們所要做的吧 實際上使其成為0的int? 聽眾:這是48。 ZAMYLA陳:48? 抱歉。 我們將減去48,對不對? 還記得ASCII數學? 我們只是把它們 像正常的數字。 如果你像對待數字, 他們成為有效的數字。 所以,如果我們有I S,這讓我們 說,在這種情況下等於0。 第i在這種情況下,以便s 將是ASCII-- ASCII碼int作為這將是47。 因此,我們可以subtract--或48。 你可以做到這一點,是一種方法。 有誰知道一個更好的 這樣,我們可以做48? 我們剛才說的0 is--進入 ASCII碼,你可以做報價。 所以不種它使 意識是如何工作的? 聽眾:在這一點上,是值0 因為即使你乘以10, 你開始用零, 所以它應該被切換? ZAMYLA陳:所以在這種情況下,你 希望在你添加到乘它, 因為在這種情況下,是的,它會 還是be--我指針丟失。 在這種情況下的值,所述第一 一次,我們運行將是零。 所以你只需添加 在這第一個數字。 下一次最重要的是 你迭代,要調換起來 你把你的下一個數字之前。 這是否澄清的嗎? 行。 有時候,你會 讓更多的怪異MATHY的東西。 如果你有最 這一點,你還是會 以get--你要做的非常好。 部分信貸是一個很 大的事情上CS50測驗。 所以寫你知道什麼。 如果你得到的一切 除了這裡,你 還是打算做 很好的問題。 因為你有顯示, OK,我幾乎知道。 我知道我需要遍歷。 我知道我需要檢查。 我只是不太 獲得如何轉換它。 你會好的。 是的,你要 失去了兩分, 但你仍然會得到一個 東西分好多個 這樣,如果你 失踪的這兩條線。 我會是這樣確定,此人 知道他們在做什麼。 數學是很難的。 所以,我要說你會被罰款。 好了,你們準備好 立即試用strlen的使用指針 那你們是指針的主人? 所以,我會讓你們的工作 上一點點。 如果有人需要複習。 所以,你要使用指針 算術,然後如果s為null, 你的實現應該返回0。 像這樣的事情,讓你 真的很高興只是調用strlen 在一天結束。 我覺得這個可能是有點 比最後一個,這容易 還是不錯的。 我給你們一分鐘, 然後,我們將努力通過它。 然後我們能去的交換機。 OK,準備傢伙? 也許一點點。 所以,我已經給了你 兩種選擇,不是嗎? 無論是檢查空,如果返回0 它是,或實際計算的長度。 那麼,誰願意寫檢查空? 去了。 聽眾:如果括號s 等於等於空返回0。 ZAMYLA陳:可愛。 我喜歡你一半的問題 只是檢查空。 我知道跟你們最後 上週我當時想檢查null 從字面上每一次。 OK,so-- 聽眾:如果返回0是只有一條線, 我們還需要在大括號? ZAMYLA陳:在技術上不 需要他們,只要你是一致的。 這是很好的做法只是 取得的習慣 使用花括號, 但在技術上沒有。 你不需要他們一行。 我們只是傾向於推薦 對於開始計劃的人。 所以,現在什麼可能我們要在這裡做? 所以,現在我們知道,我們的字符串是有效的。 我們要保持的計算長度。 什麼是可能是第一個 我們想要做的事情嗎? 聽眾:創建 INT這就是長度。 ZAMYLA陳:沒錯。 聽眾:我們希望能夠將其設置為? ZAMYLA陳:0。 完美的。 行。 現在確實想做些什麼? 這是真正的大頭吧。 去了。 聽眾:所以你可能會做一個for循環。 然後,因為當你打電話是你是 得到的第一件事情的地址, 你將開始與我等於0。 然後只要X 再加上我是不回斜線0。 ZAMYLA陳:空終結。 聽眾:空終結。 然後添加一個長度。 ZAMYLA陳:是的。 好了,讓把那 到非常具體的代碼。 但是,這是一個完美的主意。 這正是我們正在做的。 我們將要迭代 通過使用指針。 所以我們想要做的 是不是一個int 在這裡,因為我們 不是指的它。 我們指的是一個開始 字符串,開始被一些地址, 對不對? 所以,我們希望有一個指針。 因此,我們將有一些燒焦的明星, 因為它符合我們的對嗎? 因此,這是一些點,我們正在初始化 字符串的開始,好不好? 因此,讓我們叫它我。 如果是字符串的開始, 什麼是將要分配給? 不為0。 我們希望它是 開始我們的字符串。 什麼表示的起始 我們這是給我們的字符串? 聽眾:剛才秒。 ZAMYLA陳:秒。 因此,這帶來了一些新的指針 代表了我們的字符串的開始,好不好? 另一種方式把它 就像這裡是我們的數組。 這就是我們的字符串,S。 所以我們可以說這是 第一點,這是為0x4。 04。 這是我們的S,其中包含該地址。 而我們剛剛創建另外一個名為 i的僅僅指的是同一件事。 所以,他們都只是指向 我們的字符串的開頭。 這僅僅是一個圖形表示。 所以,現在我們要 做的是我們要遍歷 我們的條件迭代 通過我們的字符串。 現在購物。 到了店,伙計們。 是我們要不斷更新,直到 我們到達空終止,對不對? 那麼,什麼會是什麼樣子的? 難道我們要我,還是我們想要 明星是我的問題嗎? 是空終止地址 什麼存放的地址? 位於地址,對吧? 因此,我們需要解引用是什麼 這裡,因為這僅僅是一些地址。 要真正得到啟動 我們需要解引用這個 所以,我們實際上得到 什麼是在這個第一的位置。 因此,如果我們做明星我什麼 我們不希望它等於? 聽眾:反斜杠? ZAMYLA陳:有。 這是否有意義大家? 我們需要進入我們的字符串, 確保它不是結束。 然後我們就可以只更新這個樣子。 正常更新。 因此,只要這些 MET,你有什麼需要我們做什麼? 聽眾:長度加再加。 ZAMYLA陳:嗯。 再經過循環 結束,有什麼事我們要回來嗎? 聽眾:長度? ZAMYLA陳:長度。 你去那裡。 這其中顯然肉 為理解這一循環。 每個人都得到了怎樣的工作? 我很高興能重來一次。 聽眾:第二 部分,所以明星我有, 這就是first--地址 ZAMYLA陳:這不是地址。 這是什麼的。 聽眾:這實際上是在那裡。 ZAMYLA陳:這是 什麼是真正在那裡。 因此,這是saying--讓 我做這更好的。 因此,這是0×04,而我只是去 說我打算讓我的這個名字。 行。 是的,我知道我有測驗檢討今晚。 很多測驗審查。 所以我們說這個字符串 是我的名字,佳佳。 有點亂,但它的存在。 和s表示的位置 字符串開始的地方, 所以我打算讓這個 real--這是一個地址, 其中字符串開始,對不對? 因此,我們在這裡做什麼是我們想要 使用指針遍歷。 因此,我們創建了一些指針,我,也 等於該字符串的開始。 並且在每個點處,我們希望 繼續經歷陣列 在這裡,直到我們打空終止。 所以,我們總是要檢查什麼 在這些地址。 因此,我們解引用我,讓 我們第一次做到這一點,我們 說好,什麼是地址0×04? 這是一個一。 OK,我們是很好的。 增加的長度。 移動到下一個。 所以,我 - 記三分球增加的 無論他們指向的大小。 所以在這種情況下,由於它是 一個char,它會通過一個更新。 所以,現在我們要看看5, 這意味著它是怎麼回事了。 所以說,好了,去0x05的。 是什麼在那裡? 這是一個l。 它會繼續這樣做, 直到遇到這一個。 它說,OK,什麼在 無論地址是? 空終止,OK。 出口。 而剛剛返回的長度。 因為你需要什麼是真正的 該地址,而不是地址本身。 也有極少數的地方 你真正需要的地址。 大多數時間,當 您正在使用的,它的 當你第​​一次 分配指針或時 你傳遞到另一個函數。 好了,大家都好有? 的種類? 行。 所以看起來我們已經 留下了約12分鐘, 所以我們會去到 也許我們的最後一個問題, 然後再有任何 已經想出概念 在此期間,我們可以 很快就離開了這一點。 所以切換齒輪中的最後一個 問題就在這裡,switch語句。 所以,你的工作就是重寫這個 這樣它的行為相同 但不使用交換機。 堊白的雙手。 所以這個蝙蝠的問題嗎? 無? 行。 大家都明白,如果 案件沒有經過任何事情, 這意味著,它應該 按照下一步? 所以殼體1和2在此情況下 做同樣的事情。 有時容易混淆的地方。 行。 任何人有任何想法? 是嗎? 聽眾:所以,你可以 只是做if語句。 ZAMYLA陳:嗯。 那麼,什麼是我們的第一次? 聽眾:如果n等於等於1, 和2線或n等於 等於2,然後打印小。 然後,你可以做的,如果其他人? 或者,你可以只是做一個if? ZAMYLA陳:如果你可以做別的嗎? 聽眾:這是否重要,如果你這樣做的話? ZAMYLA陳:所以它的作用。 是否anyone--這樣,你 會得到相同的輸出 如果你只使用IFS與 如果使用其他IFS。 你們可以想到的原因 為什麼您可能希望使用其他 如果對大量IFS的? 要與效率。 是嗎? 聽眾:它會檢查 所有的IFS每次。 ZAMYLA陳:所以,即使 它擊中了這第一個, 它會在去檢查每隔之一。 所以,你要使用的情況下,如果其他IFS 其中只有永遠都適用其中之一。 所以互相排斥 我們往往會說。 如果您有一堆IFS的,這意味著 也許不止一個人 問題,也許比多 其中之一可以是真實的。 而您希望他們兩個 如果他們真的來執行。 如果你只想要其中的一個工作 在這些相互排斥的情況下, 你想,如果用別的,因為 這一切,是因為有效率。 你的代碼僅僅是更好的設計 如果堅持這種做法。 因此,在這種情況下,我們將有一個ELSE IF。 這會是什麼? 聽眾:n等於等於3。 ZAMYLA陳:完美。 打印介質。 然後在我們的最後 情況下,我們有什麼? 否則否則,如果? 聽眾:否則。 ZAMYLA陳:我們want--你想 否則,如果因為我們有具體的案例。 這不是那種一抓所有。 如果在switch--有一個缺省 記得交換機可以有情況, 然後你有默認值。 如果你有一個默認的,這是一種 你else語句出現。 但是如果它具有唯一的情況, 這意味著你需要 進行檢查,看它是否每個那些。 所以在這種情況下,它會在4或5。 我們要打印關閉。 這是大的。 和你去。 這將是你的程序。 所以在這種情況下,如果我們 有一個默認的東西, 我們將有一個東西在 不管它希望我們做的。 所以這是一個很好的區別 要知道,了解。 這是否有助於開關嗎? 完美的。 行。 我們擁有約八分鐘離開。 難道你們有什麼 其他高層次的概念? 一般的問題? 是嗎? 觀眾:我有一個 對他們中的一個問題, 這是關於隨機 在測驗零數發生器。 ZAMYLA陳:哦,那一個。 一個是另一個的地方 它更多的數學than--肯定的。 該解決方案以that--連我的時候 我看到它,我很喜歡,這是什麼。 聽眾:這是7號。 ZAMYLA陳:這在我看來很奇怪。 所以基本上你想要 使用drand48,這 會給你一些 介於0和1個數。 並且你想用它, 你以某種方式得到A-- 而且它更的一道數學題 比我想像的CS問題。 你做它 - 的方式, 有時它也只是這樣。 再次,這些是 情況下,它是一種 像寫什麼你 可以和部分信用。 因此,如果我們想一回, 我們知道,我們是 將要使用drand48 在某種程度上,對不對? 那麼,為什麼我們不記下來。 我們使用它以某種方式。 他們有辦法 你們用它 這樣,我會盡量解釋。 所以基本上這裡會發生什麼 是因為它是一個介於0和1, 你在做什麼,是你乘 by--這不能不說是一個數學問題。 剛滿免責聲明,這是 完全是數學問題。 你正在做的是 因為0和1,您 希望它是內 這個範圍,你居然 弄清楚如何大 的範圍是,然後 你基本上按比例放大, 這是這是什麼做的。 B減一給你的範圍內, 這些數字之間的差異。 您可以在0繁殖 和1,再加入一剛 意味著你的縮放起來 所以,它的a和b之間, 我真的不喜歡這個問題。 正如我所說的,本測驗 是指包括 人誰不舒服, 介於兩者之間, ,更舒適。 因此,如果他們說得那麼 這是什麼 每個人都在少 舒適的地方會得到, 我們將有太多太多 人得分完善, 和更舒適的會是無聊。 因此,他們總是有這些 種腦筋急轉彎問題 那些原本應該是有點困難 這需要一定的創造性思維。 當你看到他們, 不要太難倒。 我肯定會說的倒裝 通過你的第一次測驗。 解決問題 你知道你可以, 因為沒有使用卡住 在一個問題,當存在三個 或在網頁上四個或五個 之後,你可以很容易地做到。 聽眾:到底為什麼你 由範圍乘以? ZAMYLA陳:你乘的範圍 你知道 - 它是怎麼樣經過多少 你想要? 所以,你能想到的,因為它 返回一個介於0和1之間的數, 你可以把它看成是一個百分比。 因此,它基本上是說,如果我們有 我們的數字線在這裡,在這裡, b是在這裡。 你就像多少錢過去呢? 就是我們正在做的。 所以你剛才問的 該範圍,百分數 就是它給你。 然後你基本上只是 通過增加其放大。 這是一個數學腦筋急轉彎。 如果有任何最後一分鐘的意見,我 將通過提問說,翻轉, 找出哪些是你 知道似的,哦,我得到這個。 幾乎可以肯定他們會 是你不知道的問題 或者,你要去有時間 對,所以打你的長處,好不好? 你們要大。 有很多的 是有原因的問題, 讓您有時間 種有機會 證明了什麼 你在真的很好。 因此,它是確定的,如果你是 在一切都不好。 發揮你的長處。 是嗎? 聽眾:原來是這樣打算 返回東西是截斷? 是的,它會因為drand 0和1之間的回報。 它會返回一個int, 因為它會截斷 當我們添加一個或它繁殖。 涼爽。 在最後一分鐘的問題嗎? 你們要做大。 你會是美妙的。 並且即使不是這樣,將 是這裡的糖果下週。 我會愛你。 我愛你們不管。 好了,祝大家好運。 有一個偉大的時間。 你會好起來的。 你知道嗎? 在兩天它會 要結束了,而我 有上週四2期中考試,所以 至少你們會做。 好吧,我會看到你們下週。