在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C  iOS/ 常量的定義到底該怎么寫?

常量的定義到底該怎么寫?

下面三種定義常量的寫法有什么區(qū)別?

static const NSString *CQAddressCellReuseID1 = @"CQAddressCellReuseID1";
static NSString * const CQAddressCellReuseID2 = @"CQAddressCellReuseID2";
const static NSString *CQAddressCellReuseID3 = @"CQAddressCellReuseID3";

你們定義cell的復(fù)用id是怎么定義的?

回答
編輯回答
茍活

const*前面, 表示變量的值不可變, 指針地址可變;
const*后面, 表示變量的值可變, 指針地址不可變;


總結(jié)為: const后面的變量(*CQAddressCellReuseID1)或者指針(CQAddressCellReuseID1)是不可變的; 一般都是把const寫在*后面,可以參考Apple API.

clipboard.png

clipboard.png

2018年8月26日 09:07
編輯回答
朽鹿

const 修飾誰(shuí)(在誰(shuí)前面),誰(shuí)就不可變;
1、3是 ‘NSString *’即類型不可變
2 是 CQAddressCellReuseID2 指向不能變

2017年4月4日 14:39
編輯回答
落殤

CQAddressCellReuseID1和CQAddressCellReuseID3是一樣的,指針不可變;CQAddressCellReuseID2是指針內(nèi)容不可變。定義cell的id應(yīng)該用CQAddressCellReuseID2這種吧。

2018年7月22日 14:50
編輯回答
焚音

以前總結(jié)過(guò)一次

1.const NSString *coder = @"Hello world!";
2.NSString const *coder = @"Hello world!";
3.NSString * const coder = @"Hello world!";

1.const NSString *coder = @"Hello world!";
" *coder "不能被修改, "coder"能被修改

2.NSString const *coder = @"Hello world!";
" *coder "不能被修改, "coder"能被修改

3.NSString * const coder = @"Hello world!";
"coder"不能被修改," *coder "能被修改

注意:1和2其實(shí)沒(méi)什么區(qū)別

結(jié)論:const右邊的總不能被修改

static定義靜態(tài)變量,只初始化一次,直到程序銷毀時(shí)才釋放,即為該變量分配的空間在整個(gè)程序的執(zhí)行期內(nèi)都始終存在;聲明外部變量,該變量的作用只限于本文件模塊。
extern定義外部變量,作為類的拓展供其他外部類訪問(wèn);也可作為傳值使用。

所以正確的寫法應(yīng)該是 static NSString * const coder = @"Hello world!";
然后使用 extern 關(guān)鍵字,在其他的文件中 extern NSString * const coder;
這樣你就無(wú)需知道 coder的具體值 而 直接使用這個(gè)變量

2018年5月16日 16:06
編輯回答
無(wú)標(biāo)題
    CQAddressCellReuseID1 = @"x";
    CQAddressCellReuseID2 = @"x";
    CQAddressCellReuseID3 = @"x";

2報(bào)錯(cuò),用const是為了不會(huì)被修改值吧。const修飾指針,表示指針不可指向新的值,1和3這種是不能進(jìn)行*p = newValue這種操作,OC里一般不這么搞。

我覺(jué)得簡(jiǎn)單起見(jiàn),用static就好了。

2017年2月2日 00:53