1、c語言和c++的發展歷史和基本原理
c:代表過程性語言傳統;
c++:類代表物件導向語言的傳統;c++模版支援通用程式設計傳統;
c程式設計原理:c是過程性語言,強調的是程式設計的演算法方面;
c語言前世今生:上世紀70年代,貝爾實驗室,dennis ritchie,開發unix作業系統;傳統上作業系統由組合語言來完成,而組合語言依賴於計算機的內部機器語言,只針對特定的以算計處理器,不具備可移植性;解決方案:高階語言+編譯器,其中高階語言為c語言;
計算機語言要處理的兩個概念:資料和演算法;
c語言的演變:最初:過程性語言(強調程式設計的演算法方面);過程化程式設計首先要確定計算機應採取的操作,然後使用程式語言來實現這些操作;結構化程式設計:將分支限制為一小組行為良好的結構;自定而下的設計原則:將大型程式分解成小型,便於管理任務(結構化程式設計反映了面向過程的思想);
物件導向的程式設計:當編寫大型程式時,結構化程式設計仍難以滿足需求,面向過程的程式設計應運而生;其理念是設計與問題本質特性相對應的資料格式;
c++中:類是一種規範,描述了這種新型資料格式,物件是根據這種規範構造的特定資料結構;利用自下而上的程式設計思想(從低階組織如類到高階組織如程式的處理過程);c++支援通用程式設計模式(提高**的重用率,強調的是演算法方面);
電腦程式的作用:將實際問題轉換為計算機能夠執行的一系列操作;
c++的二重性:oops提供了高階抽象;c提供了低階硬體訪問;
c++獲得成功的原因:融合了oop、通用程式設計和傳統的過程性方法;
可移植性:在不修改**的情況下,在另一平台上重新編譯後,程式仍能夠良好執行,則程式時可移植的;
程式的建立(取決於建立的環境和使用的c++編譯器):
(1)使用文字編譯器編寫程式,並將其儲存到檔案中,該檔案就是程式的源**;
(2)編譯源**:執行乙個程式,該程式將源**翻譯為主機使用的機器語言,包含了翻譯後的程式的檔案就是程式的目標**;
(3)將目標**與其他**鏈結起來,例如:c++程式通常使用庫;鏈結是將目標**同使用的函式的目標**以及一些標準的啟動**組合起來生成程式的執行階段版本,包含該最終產品的檔案被稱為可執行**;
建立源**檔案:
各種c++實現:
提供整合開發環境的c++實現(包括所有步驟):microsoft visual c++,各種版本的borland c++,watcom c++, digital mars和metrowerks codewarrior;
有些c++實現只能處理編譯和鏈結階段,要求在系統命令行上輸入命令,例如at&tc++,unix和linux上的gnu c++以及borland和digital mars編譯器的免費版本。這種情況下可以使用任何文字編輯器來建立和修改源**;
給原始檔命名時,注意副檔名的正確使用,因為編譯器會識別副檔名;
cfront:由stroustrup實現,用於將c++翻譯成c源**;
python第一章筆記 第一章 基礎
參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...
第一章 筆記
2.呼叫mat的size 方法,可以獲取該影象的尺寸。返回的是乙個結構體。mat image cout height 3.在原地進行的影象變換 mat image,result flip image,result,1 1 表示水平翻轉 2 表示垂直翻轉 負數表示既有水平也有垂直翻轉 imwrite ...
第一章筆記
第一章 1.main int argc,char argv 當中的引數是該檔案時輸入的命令列,例如檔案編譯後為a.out argv 0 a.out argv 1 argv argc 1 都是命令列輸入的引數 2.int read fd,buf,bufsize 從fd 檔案描述符 對應的檔案中讀入資料...