標籤:學習心得 基礎知識 程式設計語言 c語言 優缺點
2015-7-22,周三
經過一個星期C語言的學習,對基礎知識文法已經有了一定的瞭解和認識。同時通過這三天對OC語言的學習,更加瞭解程式設計語言都是相融相通的。雖然 OC語言的文法和之前接觸的C,JAVA有很大的區別,但是在講師的解析和引導下,還是比較容易接受的。
學習知識的過程不僅僅是對知識的認識,簡單的認識是遠遠不夠的。為了今後更好的開發,要對學過的知識加以理解、辨析,通過代碼去實現,加深認知。
以下是我在這段時間在學習的心得和總結。
一、數組的四種遍曆方法:
根本兩種方法
·1)指標
·2)數組遊標
具體實現如下,21~24 ,共四種
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6F/F8/wKiom1Wu4qniZOKbAADtBRsvZR0727.jpg" style="float:none;" title="1.png" alt="wKiom1Wu4qniZOKbAADtBRsvZR0727.jpg" />
二、函數指標
強調“指標”的作用
三、自增自減 和 指標 組合使用
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/F5/wKioL1Wu5I3hVVqjAADUvmmv_XY382.jpg" title="2.png" style="float:none;" alt="wKioL1Wu5I3hVVqjAADUvmmv_XY382.jpg" />
列印結果
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/F8/wKiom1Wu4qqA2cZnAAA-AzMtSog246.jpg" title="3.png" style="float:none;" alt="wKiom1Wu4qqA2cZnAAA-AzMtSog246.jpg" />
【重點】延伸
·1)自增、自減 和 指標 的組合使用
·2)關於 數組a 的地址
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6F/F5/wKioL1Wu5I2hBuseAAFWfvL1eJg170.jpg" title="4.png" style="float:none;" alt="wKioL1Wu5I2hBuseAAFWfvL1eJg170.jpg" />
四、數組 和 鏈表
數組的優缺點:
·優點:數組是連續的,尋找起來快捷方便
·缺點:數組的插入和刪除十分麻煩
鏈表的優缺點:
鏈表每個節點儲存兩個數組,一個是儲存的資料,另一個是下一跳的目標地址
·優點:鏈表插入和刪除方便
·缺點:遍曆效率相對數組低
五、關於數組地址 +1
例如,對 &a + 1 相當於 對 a 的地址上 + ( sizeof(a) * sizeof(int) ) —> +( 6 * 4)
即對 a 的地址加上一個 數組a 所佔用的空間長度
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6F/F5/wKioL1Wu5I6wFfG-AADVJhnD228478.jpg" title="5.png" style="float:none;" alt="wKioL1Wu5I6wFfG-AADVJhnD228478.jpg" />
零、結構體、枚舉
一、範圍 —【 { } 】
即 { }
名字的 範圍 是指 在程式中可以使用該名字的部分
簡而言之:在 { } 內聲明的通常只能在 { } 內使用。
(若在其他地方用 extern 再次聲明也可使用)
二、各種 變數 的特點和區別
1.自動變數 —【auto】
2.靜態變數 — 【static】
靜態變數,保留上一次值。
靜態變數的生命週期和引用程式綁定。
靜態變數寫在函數內或者函數外,他的生命週期並沒有受到範圍的限制。
如果卸載函數的外面,其他的函數也可以使用這個變數。如果寫在函數裡面,只能在對應的函數中使用
儲存地區: 靜態儲存區。
3.局部變數
4.全域變數
全域變數可以多次聲明(用extern),表示同一個變數,但是不能多次定義
5.靜態全域變數
三、結構體 — 【struct】
1.概念
定義一個結構體,只是說明了該類型的組成情況,並沒有給它分配儲存空間
結構體佔用的記憶體空間是其成員所佔記憶體之和,而且各成員在記憶體中按定義的順序依次排列
2.定義
1)定義方式【3種】
【易錯】·定義的類型名,首字母必須大寫
·結構體{ };大括弧結尾必須有 “ ; ”
2)嵌套定義,但是不能對自身進行遞迴調用
3.初始化 及 使用
不可用 42 行的方式進行初始化(注意區別數組的初始化)
“ . ” 是運算子
四、結構體指標
1.因為每個結構體變數都有自己的儲存空間和地址,因此指標可以指向結構體變數
2.結構體指標使用的方式【3種】
【重點】第三種方式 — 26行
printf(“name is %s\n”, p -> name);
五、枚舉 — 【enum】
1.枚舉就是用來定義一系列類型的
2.枚舉值其實就是數值,枚舉值預設是從 0 開始的,然後依次在上一個值的基礎上累加
3.定義方式【3種】
參照結構體的 3 種定義方式(類似)
六、typedef
1.使用 typedef 關鍵字為各種已知資料類型定義一個新的名字(別名)
【易錯】首字母必須大寫
【易錯】
1.定義結構體的結尾必須加 ;
2.結構體,枚舉 字母必須大寫
3. typedef 和 define 之間的區別
OC語言
二、OC 和 C 的一些區別
1.匯入標頭檔
·C: 使用 #include <stdio.h> 匯入標頭檔
·OC: 使用 #import <Foundation/Foundation.h> 匯入標頭檔
其中 Foundation 中包含 C 的標頭檔
2.字串
·在OC中使用%@格式化,列印一個字串對象
三、類和對象的區別
類是對象的類型
不同於 int 等基本類型, 類這種類型具有方法
四、屬性聲明【3種】
1)public: 公用的,所有類都可以使用
2)protected: 受保護的,定義的類及其子類可以使用
3)private: 私人的,只能在定義的類中使用
五、定義類的步驟
1)定義類名
2)編寫類的屬性—> 執行個體變數
3)編寫類的方法—> 方法
------------------------------------------------------------------------------
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/F9/wKiom1Wu5QDjhT0fAAFkegUFedM168.jpg" style="float:none;" title="無限互聯01.png" alt="wKiom1Wu5QDjhT0fAAFkegUFedM168.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6F/F5/wKioL1Wu5uTgxlshAAIDGIYvG4E889.jpg" style="float:none;" title="無限互聯02.jpg" alt="wKioL1Wu5uTgxlshAAIDGIYvG4E889.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6F/F5/wKioL1Wu5uTA422GAABxXfkwOoA055.jpg" style="float:none;" title="無限互聯03.jpg" alt="wKioL1Wu5uTA422GAABxXfkwOoA055.jpg" />
C語言及OC語言初期學習心得