如果你我忽然問(wèn)你對(duì)象前的星號(hào)應(yīng)該靠左還是靠右辫诅,你能回答嗎?
UIView* view;
UIView *view;
這兩種寫(xiě)法編譯都能通過(guò)涧狮。但是哪個(gè)是規(guī)范的寫(xiě)法呢?
要弄明白這個(gè)就得簡(jiǎn)單提提指針了么夫。
*是運(yùn)算符者冤,可以訪問(wèn)保存在某個(gè)地址中的數(shù)據(jù)
舉例:
int *addressOfI
addressOfI是一塊內(nèi)存地址的值,*addressOfI 表示取出addressOfI是這塊地址中的數(shù)據(jù)档痪。
前面的類型int告訴了編譯器這個(gè)地址內(nèi)存儲(chǔ)的數(shù)據(jù)是什么類型涉枫,這里是int。
連起來(lái)看這就表示了一個(gè)int類型的變量腐螟。
在c語(yǔ)言允許在一行代碼中聲明多個(gè)變量
float* b,c
如果這么寫(xiě)的話愿汰,c的類型會(huì)是float,不是float *乐纸。所以*號(hào)寫(xiě)在前面有可能讓人造成誤解衬廷。
所以正確答案是寫(xiě)在右邊。
UIView *view;
那么為什么我們沒(méi)分清在寫(xiě)了這么久也沒(méi)出什么問(wèn)題呢汽绢?
因?yàn)槁鸢稀!!5稹P锼巍!?/p>