教孩子寫遊戲:快速入門C++語言,理解這12個概念,1天時間夠了

2020-12-19 我是遊戲小胡

「學」的部分:

一個沒有基礎的人,要完整地學會C++語言,可能需要一年往上的時間,而且還不一定能學明白。我以為,這個問題出在教材上,寫得太過於晦澀難懂了,而且把很多特別不常用的內容添加了進去,這會導致很多想學的人越看越迷糊。在我看來,C++語言的基礎內容不是很多,我們只抓重點,用一整天的時間絕對可以學會。

前幾節課說過,計算機是一個計算二進位0和1加法的超級機器,我們看到的所有應用軟體,在電腦內部都是一堆0和1的數字而已。這些0和1不是胡亂堆砌的,而是按照特殊的規律組合在一起的,這種規律就是所謂的機器語言

如你所想,機器語言也是一種程式語言,只不過放眼望去,機器語言的代碼全部是0和1的組合,不是特別專業的人,絕對看不懂寫了什麼。不過,機器語言的好處是計算機能直接讀懂。但是,機器語言實在是太過於難懂了,還容易看得眼花,所以,沒過多久,一幫會機器語言的程式設計師一起開發了用字母和數字代替二進位的程式語言,這個語言就是大名鼎鼎的彙編語言

彙編語言只不過是簡單翻譯了一下二進位中的內容。

比方說,10101010這個二進位代表的是一個控制命令,它能把CPU中某個地方的某個數據轉移到另一個地方;而彙編語言,就用MOV這個單詞代表了這個二進位的命令。

也就是說,彙編語言相當於是翻譯語言,它的編程過程和機器語言的編程過程是一模一樣的。可是,電腦看不懂彙編語言,所以,這些發明彙編語言的程式設計師用機器語言寫了一個翻譯程序,這個翻譯程序能把彙編語言的代碼翻譯成機器語言的代碼。

雖然彙編語言給大家帶來了很大的方便,可是彙編語言實在太繁瑣了,一個簡單的乘法,需要分解成一大堆的彙編代碼。所以,在不久之後,程式設計師們又開發了新的程式語言,也就是我們現在熟知的高級語言

高級語言的優點,是非常接近人類使用的自然語言。比方說上面的乘法,用彙編語言是一堆代碼,而用高級語言,可以直接用乘號來書寫。我想,一個沒有學過編程的人,都能看明白高級語言中的加減乘除。

和彙編語言類似,高級語言也有翻譯程序。這個翻譯程序是把高級語言翻譯成彙編語言,然後再用彙編語言的翻譯程序,把它最終翻譯成機器語言。由於高級語言和自然語言很像,它和彙編語言之間的鴻溝是巨大的,所以,高級語言在翻譯成彙編語言的時候,會出現超大量的代碼冗餘。什麼意思呢?就是會翻譯出超大量的無用彙編代碼。如果一個程式設計師懂彙編語言的話,就能看出,自己用高級語言寫的代碼翻譯出了很多沒必要的重複動作。這也是沒辦法的事情,能翻譯成現在這個樣子,已經是高手程式設計師前輩的極限了。

這樣你就明白一個道理:同樣一個程序,用機器語言和彙編語言寫出來的代碼,執行效率是差不多的;而用高級語言寫出的代碼,執行效率要慢上很多。

不僅如此,彙編語言寫出的代碼佔用空間也小。比方說,同樣的記事本程序,Windows自帶的用高級語言寫的記事本大小差不多是200kb,而且還需要很多額外文件的支持;而用彙編語言寫出的同樣功能的記事本,大小只有10kb左右。

一般來講,高級語言的功能越複雜,翻譯成的彙編代碼冗餘越大。而C++語言的基礎功能是比較簡單的,這些功能翻譯成彙編語言的時候,冗餘量是可以承受的。所以,C++語言寫出的程序效率是比較高的。

也就是說,我們只需要學會C++語言的基礎功能,就能編寫C++程序了。我歸納總結了一下,C++語言的基礎概念是12個。所以,下面提到的12個C++語言的基礎概念是重中之重

概念一:語法

高級語言就是一行一行的代碼,這些代碼是按照一定的規律寫出來的。就好像我們寫英語的句子一樣,是有一定規律的,而這個規律就是語法。和英語類似,C++語言的每行代碼用到的規律就是所謂的語法了。我們可以再簡化一下,我們要學的C++語法就是下面11個概念。

下面11個概念,可以說是C++的11個語法。語法相當於公式,在具體的運用中只要符合公式,那代碼就是合法的(符合語法)。

概念二:關鍵字和標識符

一個語法的組成,有可變的部分和不可變的部分。比方說加法的語法是:

數字1 + 數字2

那麼,數字1和數字2是可變的,中間的「+」是不可變的。在C++語法中,除了像加減乘除的符號不可變之外,還有很多功能特定的單詞也是不可變的,這些不可變的單詞就是所謂的關鍵字了。所有的關鍵字,都是C++語言中為了完成某一特定任務而設計的。對於寫遊戲程序而言,我們需要掌握的關鍵字彙總如下:

暫時不需要理解,如果能強行記憶下來會更好。

然後就是可變的內容了。可變內容除了數字和字母外,還有自定義的符號組合,這些符號組合還有一個專有名詞——標識符。標識符可以用於任何需要字母組合的地方。比方說變量和函數名稱。總之,你把標識符理解成C++語言中「取名字」的規矩就可以了。

規矩大約是下面3點:

(1)所有字母、所有數字以及下劃線「_」的隨機組合都是標識符。

(2)在C++語言中,大小寫字母是區分開來的,也就是說,標識符abc和標識符Abc是完全不一樣的「名字」。

(3)所有的特殊符號都不能出現在標識符中。除了下劃線「_」以外,鍵盤上能打出來的任何符號都不行。

通過關鍵字和標識符,我們就能寫出絕大部分的代碼了。

需要提一點的是,C++語言中的空格和換行

一般的空格和換行都會被C++的翻譯程序略過。比方說

abc = 1 + cabc = 1 + c以及abc =1 +c

在C++程式語言的翻譯程序眼中是完全一樣的內容。這樣會帶來一個問題:由於空格和換行已經失去了意義,所以,需要有特定的符號來表明某一行(記住,可能不在同一行)的代碼已經完畢,這個符號就是分號「;」(記住,是英文狀態下的符號)。像上面示例的代碼,正確的寫法應該是:

語句1:abc = 1 + c;語句2:abc = 1 + c;語句3:abc =1 +c;3個語句效果是完全一樣的

就是在結束的地方加上分號。這個分號很重要,是初學者最容易忘記的小細節。如果代碼忘記了分號,C++的翻譯程序就會讀不懂,從而給我們報錯。

概念三:注釋

即使高級語言已經很接近自然語言了,可由於代碼一般比較龐大,程式設計師很有可能寫到後面就忘記自己前面寫的代碼是什麼意思了。編程的過程是把問題分解的過程,最後可能會分解成一堆加減乘除,過了段時間可能真的忘了自己寫了啥。所以,給代碼加注釋變得非常重要。注釋就是解釋,相當於解釋一下這行代碼在幹什麼。

注釋有兩種方式:行注釋以及多行注釋。

行注釋就是符號「//」雙斜槓後面的內容,多行注釋是符號「/*」和符號「*/」之間的內容。比方說上面的代碼,可以這樣注釋:

abc = 1 + c; //移動的步數增加1

也可以這樣注釋:

abc = 1 + c; /*移動的步數增加1*/

我們建議,全部使用行注釋,也就是「//」注釋,避免使用多行注釋。這一點記住就行,因為這是我們多年編程經驗的總結。

相關焦點

  • 零基礎看得懂的C語言入門教程
    此次編寫計劃編寫一個快速入門的系列以及另一個全方面學習C語言的系列。快速入門系列以輕鬆、愉悅的方式編寫,並且剝離了入門階段極少使用的技術及概念,通過最「接地氣」的方式使剛入門的新手學習到最符合當前階段的知識,計劃閱讀時長為3小時即可完成C語言關鍵內容的掌握,並且達到期末不掛科的水平。
  • DOS語言——如何打開win10運行窗口
    和往常一樣,一邊喝早茶,一邊上網和女粉絲侃大山,在手機和平板電腦上整理修改《html5》、《javascript》、《css3》、《c語言》等多年前寫的教程
  • 教你在中醫高手面前完美裝B!五運六氣推算快速入門!
    很多人會抱怨五運六氣的內容太複雜,尤其基礎推算部分就已經讓人崩潰~為此,我總結了自己的理解和經驗,做出一套能夠快速入門,並能讓你在中醫高手面前也能狠秀一把的方法。希望大家學習以後都能順利矇混過關,成功裝B!
  • 教孩子寫遊戲:手寫一個最最簡單的Windows程序框架
    如果這樣想的話,你就很難教好孩子了。編程的高難度時代已經過去,各種各樣的底層技術難題已經被我們的前輩們解決,而且很好地封裝到了各種各樣的函數中,我們只要懂得如何去使用就可以了。這一節課,我們就用這個集成工作環境寫一個Windows程序的框架。
  • 1歲以內的孩子如何做語言訓練,3個親子互動小遊戲來了
    很多家長以為,孩子在1歲以前根本不需要做語言訓練,因為孩子那麼小,教了他也不懂啊!0-3歲,是孩子語言發展的關鍵時期。今天,我們和大家分享幾個親子互動遊戲,非常適合1歲以內的孩子進行語言啟蒙訓練哦!1、金瓜瓜,銀瓜瓜相信爸爸媽媽們都給孩子唱過兒歌吧!但是很多爸爸媽媽給孩子唱兒歌的時候,就只是單純的唱,而缺少和孩子的互動。如果我們可以在唱兒歌的時候,同時根據兒歌的內容和孩子一起互動,對孩子的語言發展更有利哦。
  • 手機APP都是用什麼程式語言寫的呢
    打開APP 手機APP都是用什麼程式語言寫的呢 C語言與程序設計 發表於 2020-12-24 17:05:28   今天想和大家分享的內容是和我們手機上APP相關的,它們都是用什麼程式語言寫的呢?
  • Zig 0.7.1 發布,想要替換 C 的程式語言
    Zig 0.7.1 已發布,這是一個 bugfix 版本,共計修復了 69 個 bug。
  • 孩子數學概念發展有2個關鍵期,1個很早,父母如何給幼兒數學啟蒙
    今天我們就來談一談如何抓住數學概念發展的關鍵期,幫助孩子發展數學能力。數學概念發展的2個關鍵期有不少家長認為,數學是在上小學之後才開始學習的,幼兒園時學不學並不是很重要。這其實是一個很大的誤區。對於孩子的數概念形成和發展來說,有兩個關鍵年齡,第1個是2~3歲,第2個是5~6歲。所以,在上小學之前,才是對於數概念掌握的關鍵時期。
  • 斬仙錄:新手如何快速入門?萌新入門攻略
    斬仙錄:新手如何快速入門?萌新入門攻略 2020-12-31 18:48  口袋妖怪GO手遊 斬仙錄新手快速入門攻略。
  • 【吉他課】40天輕鬆入門,雙語彈唱12首歌曲
    ▼【寒假班】招生這點優惠怎麼夠?購買寒假大禮包後購課,課程直降80元!讓孩子在演奏的同時,增長見識,接觸更多的音樂類型,從經典中汲取養分,提升音樂素養。雙語彈唱: 前面咱們介紹過了,佳迪老師是專業的口語老師,發音非常純正。在課程中他不僅教孩子彈琴,還會教孩子用純正美式英語口語發音,演唱英文歌。
  • 教孩子寫遊戲:遊戲編程,「學」是一部分,關鍵在於「習」
    除非是超級天才,否則沒有哪一個程式設計師能夠不靠前人的基礎編程成果來寫程序。所以,想要讓寫程序從體力勞動變成腦力勞動,必須有異常紮實的基本功。也就是說,光有心學習編程是不夠的,可能你看上十幾遍教科書都無法完全學會一段代碼的意義。比方說編程中有一個「函數」的概念,這個概念光靠看書是無法理解的,必須在電腦上手動敲好幾個小時的代碼,才能真正理解它的作用。
  • 寫算法,用 C++ 還是用 Java ,差別大嗎?
    大家好,我是為人造的智能操碎了心的智能禪師。
  • 孩子「性教育」幾歲開始、教什麼、怎麼教?3個概念解決棘手問題
    《重要的「性」,影響孩子一生》以首先對家長進行自我測試,衡量家長對性教育的認識程度,對於幫助我們了解自身不足有非常重要的意義。這本書糾正了幾個錯誤觀念,分成4個年齡段,對性教育的相關知識進行了梳理。可以幫助我們解答41個常見的性教育問題。
  • 3個小遊戲,提升孩子1個必備核心能力
    了解孩子對數字理解的階段既然我們已經知道什麼是數感以及數感啟蒙的核心概念,那麼父母還要了解到孩子對於數字理解的階段:淺層階段(0~3歲):這個階段的孩子,他們認為數字僅僅只是一個字所以父母們要花大量的時間讓孩子去體驗小數量,這也是為了能夠讓孩子理解大數目,從而打下堅實的基礎。
  • 教孩子寫遊戲:計算機到底是個什麼玩意兒?如何簡單地理解電腦?
    說出來不怕你笑話,它只有兩個能力:1.計算數字0和1的加法;2.有著非常快的計算速度。也就是說,當前社會被電腦改變的根源,就是電腦能非常快速地計算加法。說得再明白些,我們眼睛能看到的電腦功能,都是電腦通過快速的計算展現出來的。可以舉例說明。
  • 2019年最實用的程式語言
    學習編程關鍵是要找到一種合適的語言,那麼程式語言那麼多,該如何選擇?下面萬古網校小編為大家分享一篇關於程式語言選擇的文章,希望能給你帶來幫助!第一大類語言包括Java、C、Python和C++。這類語言都是非常通用的語言,它們並不局限於特定的編程平臺或用途。
  • 教孩子寫遊戲:稍微深入了解一下DirectX
    就算這個人對編程一竅不通,在我一行一行代碼解釋之後,他肯定能懂,因為編寫一個記事本程序沒有任何需要「深入理解」的地方,全部都是「拼接組裝」的工作。也就是說,教人寫記事本程序,就和教人如何搭積木一樣簡單。但遊戲程序就不行。我可以直接把遊戲代碼全部給他,然後用同樣的方法,一行一行給他解釋。
  • 21天自學編程?這12個自學網站了解一下
    學編程最重要的是實踐,就是寫代碼、看別人寫的代碼、再寫代碼。當然,前提是你已經對語法很熟練了。21天自學編程——請點擊此處輸入圖片描述△僅限參考請點擊此處輸入圖片描述12個有用的自學網站如果你想學編程的話,這12個網站可以幫助你,它們都提供了免費的課程供你學習,因此你無需擔心費用的問題。
  • 樸新網校好老師毛芸:教孩子寫作文,有料還要有趣
    就讀大學期間,毛芸一直兼職教語文,最初的學員比較特別,「我的學員是外國人,我發現教外國人理解漢語存在認知和文化上差異,所以需要更靈活好玩的方式」。這段經歷激發了毛芸教學方式的更多可能性,為日後更新教學思維方式,創新課堂形式打下基礎。