iOS有哪些数据类型/基本数据类型?
簡述
本文主要探究使用OC作為iOS開發(fā)語言時,我們能使用哪些數(shù)據(jù)類型。
?
一切類型始于C。
C語言的類型
基本數(shù)據(jù)類型:
基本數(shù)據(jù)類型(fundamental data types)也叫原始數(shù)據(jù)類型(primitive data types)
整型、字符型、浮點型、枚舉型
C數(shù)據(jù)類型及內(nèi)存占用枚舉型在計算機內(nèi)部以 int 類型存儲
除了基本數(shù)據(jù)類型,C還有
構(gòu)造類型:
數(shù)組類型, 結(jié)構(gòu)體類型(struct), 共用/聯(lián)合體類型(union)
union一般在對單片機等內(nèi)存比較小的設(shè)備進行編程時才使用。
指針類型:
data_type *pointer_name
由于指針在實質(zhì)上是一個內(nèi)存地址,內(nèi)存地址的長度跟CPU的尋址有關(guān)(與data_type無關(guān))
所以在32位系統(tǒng)上, 指針占據(jù)4個字節(jié);在64位系統(tǒng)上,指針占據(jù)8個字節(jié)
空類型(void):
空類型一般用于函數(shù)的返回值,表示不需要返回任何類型。
由于void類型只是一個抽象概念,并不會存在于內(nèi)存中,自然就沒有字節(jié)占用。
?
有了類,世間萬物皆可定義。
OC語言類型
由于Objective-C是C語言的嚴格超集,因此以上的數(shù)據(jù)類型也是OC數(shù)據(jù)類型。
相比于C
OC是一門面向?qū)ο笳Z言,如同C++一樣支持用戶定義類型(class)。
用戶定義類型為Cocoa框架的誕生提供了可能。
?
類型越來越復(fù)雜,代碼越來越簡潔。
iOS數(shù)據(jù)類型
一般而言,我們所說的數(shù)據(jù)類型/基本數(shù)據(jù)類型都是指一門語言的。
iOS數(shù)據(jù)類型?=?C數(shù)據(jù)類型 + Cocoa類
iOS數(shù)據(jù)類型不是一種嚴謹?shù)慕蟹?#xff0c;實際上指的是C數(shù)據(jù)類型加上Cocoa框架集合(Foundation、UIKit等)中定義的的數(shù)據(jù)類型,也即Cocoa類(泛指所有基于Objective-C運行時且派生自根類NSObject的類)。
Foundation框架中定義的NSObject類是iOS中最重要的數(shù)據(jù)類型,用戶定義的類都需要繼承自它從而獲得調(diào)用iOS系統(tǒng)資源的能力。Foundation中還有一個重要的集合(Collection)概念,其包含了NSArray、NSSet、NSDictionarry以及各自的可變類型;此外,還有NSString、NSMutabString、NSNumber等重要的類型。以上提及的類型均繼承自NSObject,是用戶定義類型(class)而并非構(gòu)造類型(struct),它們在被賦值或者被傳入函數(shù)或者方法時,不會發(fā)生值拷貝,而是傳遞現(xiàn)有實例的引用。
總結(jié)
?
iOS數(shù)據(jù)類型注:由于在iOS中BOOL實際上是signed char類型的重命名,NSInteger等也大同小異,因而并沒有將它們歸為新的類型。
參考
C/基本數(shù)據(jù)類型
C 語言中不同類型指針的大小是否完全相同,為什么?
iOS布爾類型
內(nèi)存:棧和堆(C / Swift)
NSObject、NSNumber
轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/11101145.html
總結(jié)
以上是生活随笔為你收集整理的iOS有哪些数据类型/基本数据类型?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [µC/GUI 学习]µC/GUI移植
- 下一篇: [汇编语言]-第四章第1个程序