用const修飾的變量表示變量值只讀豹休。
static有兩個作用:指定變量的作用域和存儲的方式。在一個文件首部聲明static變量桨吊,那么此變量就在該文件中使用威根。
static和const結(jié)合可以設置作用域確定并且只讀的變量凤巨,比如文件中的全局常量
1.用const修飾指針變量
(1)(const類型*變量名):可以改變指針的指向,不可改變指針指向的內(nèi)容
(2)(類型*const變量名):可以改變指針指向的內(nèi)容洛搀,不能改變指針的指向敢茁。
(3)(const類型* const變量名):指針的指向、指針指向的內(nèi)容都不可以改變
2.創(chuàng)建文件域的字符串常量
(1)如果指針指向的是可變的字符串對象留美,即使加const修飾該對象彰檬,該對象也是可變的:
輸出結(jié)果為:
(2)如果指向的是不可變對象如NSString,就不用擔心指向的對象的值被改變了谎砾,但是指針的指向也可以被改變:
輸出結(jié)果為:
(3)如果想創(chuàng)建一個只讀的字符串常量僧叉,應該設定指針只讀,并指向不可變對象:
(4)那么聲明文件域的字符串常量的做法是:在文件首部做以下聲明
必須在聲明時就對常量賦值棺榔。否則在使用時不能再對其賦值,從而使用的是指向nil的指針
(5)如果要聲明文件域的基本數(shù)據(jù)類型常量隘道,在文件首部聲明變量時用static const修飾并賦初值症歇。例如:
static const NSInteger a = 100;