1.加深記憶:OC知識點截圖

判斷一個字符是不是數字

1. C語言函數知識:

(1)如果函數形參是基本數據類型,意味著值傳遞,修改函數內部形參不會影響外面實參的值;如果形參是指針類型,則是地址傳遞;

(2)C語言的弱語法注意點:如果函數不聲明返回值類型,那返回值類型默認為int,不是void;就算函數聲明了返回值類型,也可以不返回任何值。

(3)C語言不允許同名函數存在,即使返回值和形參不一樣也不行。

(4)鏈接就是把C語言的函數庫的函數和程序員的函數合并,生成可執行文件。(比如,在.c文件中不寫#include <stdio.h>,又在main函數中調用printf( )函數,編譯時會因為找不到printf( )函數聲明而報警告,但是鏈接時因為把系統的printf( )函數聲明和實現合并過來,而順利運行)。

(5)假設普通變量a,指針變量p,如果 p = &a,那么*p = a,意味著p訪問自己指向的存儲空間。指針變量p前面的數據類型代表p只能指向該數據類型的變量(也就是只能存儲該數據類型變量的內存地址)。

(6)定義一個指針變量:int *p; 初始化指針變量:p = &a。注意:不要操作未初始化的指針變量。

(7)

int a = 0; ?

int *p = &a,這里的"*"僅僅是個符號,代表p是個指針類型變量;

*p = a,這里的“*”代表訪問p指向的存儲空間,即間接訪問變量a。

(8)在64位系統中,所有類型指針都占用8個字節。之所以給指針分類型,是為對了指針指向的變量進行賦值取值時,知道從哪個內存地址開始,一共賦值給多少個字節或者從多少個字節中取值。

(9)C語言中,數組名就代表數組的地址,而數組首元素的地址就代表數組地址;所以,ptr = &array[0] 等價于 ptr = array, 都是用一個指針變量指向該數組。

數組訪問方式

(10)指針指向數組的首元素,指向字符串的首字符換句話說,指向數組的指針存儲的是數組首元素的地址,指向字符串的指針存儲的是字符串的首字符地址;再換句話說,數組類型的指針指向數組首元素,字符串類型指針指向字符串首字符)。

(11)

返回指針的函數:函數返回值是個指針

返回指針的函數

指向函數的指針:定義一個指向函數的指針變量,可以間接調用函數。

指向函數的指針(函數的 三種調用方式)

(12)數組和結構體變量都是構造類型,定義一個數組和結構體都只能定義的同時賦值。

數組,結構體定義注意點

(13)定義結構體的三種方式:

定義結構體的三種方式

(14)數據類型:

數據類型

(15)內存尋址由大到小。

(16)以#開頭的指令都是預處理指令(#include, #import, #define,#undef)。

1. 預處理指令分3種:1> 宏定義 ?2> 條件編譯 ?3> 文件包含

2. 預處理指令在代碼翻譯成0和1之前就執行

3. 預處理的位置是隨便寫的,從編寫那行開始,一直到文件結尾,可以用#undef中途截止

4. 帶參數的宏格式:#define 左邊內容 右邊內容。作用簡單粗暴:編譯前把左邊的替換成右邊的。而且一定要注意,每個參數都必須帶小括號!!!!

4. 宏名一般用大寫或者以k開頭。COUNT 或者 kCount(約定俗成,沒有why)

(17)typedef用于給已存在的數據類型起別名,它對結構體和枚舉來說極其重要,不掌握的話蘋果源代碼根本看不懂!!!!! 至于枚舉只不過關鍵字和結構體不一樣,格式差求不多~~~

起別名

(18)框架:按照軟件工程的術語,框架是可以復用的設計構件,規定了應用的體系結構,闡明了整個設計、協作構件之間的依賴關系、責任分配和控制流程。也有人給出定義:框架是在一個給定的問題領域內,一個應用程序的一部分設計與實現。iOS開發中的框架指的是有許多類、函數、協議、分類和文檔等按照一定邏輯組織起來的集合,為iOS應用開發提供便利,包含foundation,UIKit,Core Animation,Core Graphics,Core Data等等。

iOS框架介紹:http://blog.csdn.net/yuhuangc/article/details/7575519

(19)BOOL類型的本質:typedef signed char BOOL;

(20)類的繼承關系和isa指針指向圖:

OC繼承關系圖

在實現中,Root Class 是指 NSObject,我們可以從圖中看出:

NSObject 類包括它的對象實例方法。

NSObject 的元類包括它的類方法,例如 alloc 方法。

NSObject 的元類繼承自 NSObject 類。

一個 NSObject 的類中的方法同時也會被 NSObject 的子類在查找方法時找到。

引用唐巧博文:

Objective-C對象模型及應用:http://blog.devtang.com/2013/10/15/objective-c-object-model/

談Objective-C block的實現:http://blog.devtang.com/2013/07/28/a-look-inside-blocks/?

(21)performSelector調用和直接調用的區別

(22)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 指針是C語言中廣泛使用的一種數據類型。 運用指針編程是C語言最主要的風格之一。利用指針變量可以表示各種數據結構; ...
    朱森閱讀 3,479評論 3 44
  • __block和__weak修飾符的區別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用,...
    LZM輪回閱讀 3,374評論 0 6
  • 一、框架 1、Mac系統及常用工具、進制;C數據類型、常量變量、運算符、表達式、格式化輸入輸出 2、關系運算符、邏...
    師景福閱讀 744評論 0 2
  • 王雀閱讀 143評論 0 1
  • 斗指東南,維為立夏,萬物至此皆長大,故名立夏也。“立夏”的“夏”是“大”的意思,是指春天播種的植物已經直立長大了,...
    小金瓜閱讀 1,269評論 1 9