<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                本文目錄 - [一、計算機常識](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label0) - [二、程序設計語言發展史](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label1) - [三、C語言簡史](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label2) - [四、C語言的特點](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label3) - [五、C語言的作用](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label4) - [六、C語言的版本問題](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#label5) 前面已經給大家介紹了iOS開發相關的一些基礎知識,比如[學習iOS開發需要什么準備](http://www.cnblogs.com/mjios/archive/2013/04/27/3046049.html)、[iOS開發的前景](http://www.cnblogs.com/mjios/archive/2013/04/28/3049595.html)等等。在《[開篇](http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html)》這講中說過:其實iOS開發就是開發iPhone\iPad上的軟件,而要想開發一款軟件,首先要學習程序設計語言。iOS開發需要學習的主要程序設計語言有:C語言、C++、Objective-C,其中C++、Objective-C都是以C語言為基礎,從C語言衍生出來的。從這講開始,我們就暫時拋開iOS相關的知識,沉下心來學習傳說中的C語言。正式學習之前,先提醒一句:學習一門語言的語法是比較枯燥的事,很像是在學習1+1等于幾,不可能說,學習C語言語法過程中就能馬上做出一些好看的iPhone界面效果。大家要沉得住氣,所謂苦盡甘來,沒有語法的積累,如何能編寫出好看的界面呢? [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##一、計算機常識 在學習C語言之前,先要了解一些計算機常識 ### 1.計算機只能識別0和1 - 大家都知道,計算機要通電才能工作,說白了,它跟電視、洗衣機一樣,都是電器。電器都有個共同的能力:懂得判斷通電還是斷電,通電就能工作,斷電就停止工作。因此,從根本上講,計算機只能識別電信號:高電平信號(通電)、低電平信號(斷電),它只知道某個開關是通電還是斷電。我們用1代表高電平,0代表低電平。 - 也就說,計算機只能識別0和1。 ### 2.二進制 因為計算機只能識別0和1,因此計算機所能識別的指令和數據都是用二進制數(0和1)來表示的。所謂二進制,就是用0和1來表示所有的數。不過我們日常生活中最常用的是十進制,用0~9來表示所有的數 **1, 二進制指令** 給計算機灌輸一些指令,它就能執行相應的操作,而計算機只能識別由0和1組成的指令。在計算機發展初期,計算機的指令長度為16,即以16個二進制數(0或1)組成一條指令,例如,用1011011000000000這條指令,是讓計算機進行一次加法運算。因此,如果要想計算機執行一系列的操作,就必須編寫許多條由0和1組成的指令,可以想象的到,這個工作量是如此巨大。 **2,二進制數據** 平時我們在計算機中存儲的一些數據,比如文檔、照片、視頻等,都是以0和1的形式存儲的。只不過計算機解析了這一大堆的0和1,以圖形界面的形式將數據展示在我們眼前。 [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##二、程序設計語言發展史 我們可以利用程序設計語言來編寫程序,再將編好的程序運行到計算機上,計算機就能夠按照程序中所說的去做。從計算機誕生至今,程序設計語言大致經歷了3個發展階段:機器語言、匯編語言、高級語言。其中,C語言屬于高級語言。 ### 1.機器語言 **1,什么是機器語言** 在計算器誕生初期,?所有的計算機程序都是直接用計算機能識別的二進制指令來編寫的,也就是說所有的代碼里面只有0和1。這種程序設計語言就是“機器語言”。這些由0和1組成的二進制指令,又叫做“機器指令” **2,優點** - 由于機器語言編寫出來的代碼是能被計算機直接識別的,因此機器語言是直接對硬件產生作用的,程序的執行效率非常高。 - 機器語言能直接訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。 **3,缺點** - 用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令和指令的涵義,指令又多又難記。 - 編出的程序全是些0和1的指令代碼,可讀性差,還容易出錯。 - 由于機器語言是直接對硬件產生作用的,對硬件的依賴性很強,因此不同型號計算機的機器語言又不一樣。也就是說,如果2臺不同型號的機器想實現一樣的功能,需要編寫2套完全不同的代碼。 可以看出,機器語言很難掌握和推廣,現在除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。 ### 2.匯編語言 **1,什么是匯編語言** - 由于機器語言的種種弊端,嚴重影響開發效率,后面就出現了匯編語言。匯編語言其實就是符號化的機器語言,它用一個符號(英文單詞、數字)來代表一條機器指令。比如,在機器語言中,用1011011000000000這條指令,是讓計算機進行一次加法運算;而在匯編語言中,用英文單詞“ADD”就可以表示加法運算。一個有意義的英文單詞,很明顯比一串又臭又長的二進制指令,直觀好記多了。 - 由于計算機只能識別0和1,用匯編語言編寫的代碼是不能被計算機所識別的,像剛才的“ADD”,計算機肯定不知道是什么意思。因此,用匯編語言編寫的代碼需要翻譯成二進制指令后,才能被計算機識別。這個翻譯的工作交給“編譯器”去做。 **2,優點** - 對比機器語言,匯編語言的代碼可讀性好 - 匯編語言能像機器語言一樣,可以直接訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。使用匯編語言,可以訪問所有能夠被訪問的軟、硬件資源。 - 目標代碼簡短(目標代碼就是經編譯器翻譯過后的二進制代碼),占用內存少,執行速度快。(計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。其作用是用于暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成后CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。)計算機的內存是有限的,因此一個應用程序運行時所占用的內存越少越好。 **3,缺點** - 匯編語言是面向機器的,通常是為特定的計算機或系列計算機專門設計的。因此,不同的機器有不同的匯編語言語法和編譯器,代碼缺乏可移植性,也就是說,一個程序只能在一種機器上運行,換到其他機器上就不能運行。 - 匯編語言的符號非常多、難記,即使是完成簡單的功能也需要大量的匯編語言代碼,很容易產生BUG,難于調試 - 使用匯編語言必須對硬件非常了解,開發效率很低,周期長且單調 ### 3.高級語言 由于匯編語言依賴于硬件,代碼可移植性差,符號又多又難記,于是人類就發明了非常接近自然語言的高級語言。后面要學習的C語言就是高級語言。 **1,優點** - 簡單、易用、易于理解,語法和結構類似于普通英文,且遠離對硬件的直接操作,使得一般人經過學習之后都可以編程,而不用太熟悉硬件知識 - 寫出來的程序更加簡潔。比如要計算2個數的和,在高級語言中可以寫得非常簡潔:d=a+b;。但是在機器語言和匯編語言中,就需要幾條甚至幾十條指令,而且不同機器還要編寫不同的指令代碼 - 用高級語言編寫的同一個程序還可以在不同的機器上運行,具有可移植性 **2,注意** 用高級語言編寫的程序不能直接被計算機識別,需要經編譯器翻譯成二進制指令后,才能運行到計算機上 [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##三、C語言簡史 - C語言于1972年發明,首次使用是用于重寫UINX操作系統(UNIX以前主要是用匯編語言寫的,它奠定了操作系統的基礎) - 隨著UNIX操作系統的成功,C語言也得到了大幅度地推廣,被先后使用到大、中、小、微型主機上,至今還是世界上最流行、使用最廣泛的高級程序設計語言之一 - C語言是一門面向過程的語言,非面向對象的語言。(究竟什么是面向過程、面向對象,暫時不用去理解,只需要知道C語言是面向過程就Ok了) 下面是2013年3月份的編程語言熱門排行榜 ![](https://box.kancloud.cn/2016-05-07_572d603daf65b.png) 從C語言誕生至今,它的熱度一點也沒減過,前兩名基本上都是Java和C [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##四、C語言的特點 ### 1.豐富的運算符 計算機的基本功能就是計算,因此一門程序設計語言的計算能力是非常重要的。C語言提供了34種運算符,計算類型極其豐富,其中包括了最基本的加減乘除運算。 ### 2.豐富的數據類型 - C語言的生命力之所以如何強大,很大一部分是因為它擁有豐富的數據類型。 - 正因為C語言數據類型豐富,運算能力極強,因此很多數據庫都是用C語言編寫的,比如DB2、Oracle等。 ### 3.可以直接操作硬件? 跟匯編語言一樣,C語言可以直接操作硬件,允許直接對位、字節、地址進行操作(位、字節、地址是計算機最基本的工作單元),可以說幾乎沒有C語言做不了的事情。 ### 4.高效率的目標代碼 目標代碼,就是經編譯器翻譯后的二進制代碼。C語言的目標代碼執行效率非常高。 ### 5.可移植性好 在一個環境上用C語言編寫的程序,不改動或稍加改動,就可移植到另一個完全不同的環境中運行。 上面所說的都是C語言的優點,它有個非常明顯的缺點:語法限制不嚴格。這樣就導致初學者對C語言語法不能理解得很透徹,而且在開發過程中也會帶來很多容易忽略的問題。? [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##五、C語言的作用 - 由于C語言具有強大的數據處理能力,而且允許直接訪問內存地址,直接對硬件操作,因此它適于編寫系統軟件、圖形處理、單片機程序、嵌入式系統開發甚至是用于科研。 - 很有游戲外掛都是用C語言寫的 - 很多操作系統的底層都是用C語言寫的,比如android? [回到頂部](http://www.cnblogs.com/mjios/archive/2013/05/03/3052593.html#labelTop) ##六、C語言的版本問題 從UNIX操作系統的成功后,C語言得到了廣泛地應用,從大型主機到小型微機,都有C語言活躍的身影,也衍生了很多個版本的C語言。長期以往,C語言將可能成為一門有多個變種、松散的語言。一門正式的語言,肯定要有個標準才行,不然就亂套了。為了改變這種局面,1983年美國國家標準局(American National Standards Institute,簡稱ANSI)成立了一個委員會,開始制定C語言標準的工作。1989年C語言標準被批準,這個版本的C語言標準通常被稱為ANSI C
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看