OC學習筆記(五) 物件與函式

2021-07-12 05:11:24 字數 1088 閱讀 3702

#import @inte***ce person : nsobject  

- (void) talk;

@end

@implementation person

- (void) talk

@end
例一:

void test(int a,float w)

int main()

執行結果:對方(年齡30體重60.0)不想跟你說話,並向你扔了乙個hello world。。

原因:由於test中值傳遞,改變的是a和w的值,並沒有改變物件中的屬性值;

例二:

void test1(person *p)

int main()

執行結果:對方(年齡30體重50.0)不想跟你說話,並向你扔了乙個hello world。。

原因:test1中引數p已經指向main中定義的p,所以修改有效;

例三:

void test2(person *ps)

int main()

執行結果:對方(年齡30體重60.0)不想跟你說話,並向你扔了乙個hello world。。

原因:由於test2函式中指標ps已經指向了per的值,已經與main中的p物件無關,所以修改無效;

總結:只要搞清楚指標的指向,一切就容易了,指向誰就找誰;必要的時候可以自己在草稿紙上畫乙個記憶體指向圖,一目了然;

另外,注意乙個問題:在oc中,物件是不會自動**的,需要手動釋放,所以只要申請了乙個物件,都會留在記憶體中,等著你釋放,後續將會繼續學習有關oc中記憶體管理的知識。

OC學習筆記06 物件與函式

nil 表示空物件 inte ce person nsobject void say nsstring words end implementation person void say nsstring words end 物件作為函式引數傳遞是位址傳遞 在函式可以通過物件訪問它裡面成員變數 也可以...

OC 005 物件與函式的關係

物件作為函式引數傳遞是 位址傳遞 在函式內部可以通過物件訪問它裡面成員變數 也可以物件呼叫它的物件方法 成員方法 在函式中建立的物件是在堆中的,所以可以當做返回值 區域性變數是存在在棧裡面,當大括號結束的時候區域性變數會唄系統 不能做為返回值 定義person類 inte ce lsperson n...

Javascript學習筆記 2(物件 函式)

1 原始變數 number string boolean null undefined。變數記憶體存的就是值,按值傳遞的 2 引用變數 物件變數,變數記憶體存的是指標,所以是按指標傳遞 鑑別原始型別 typeof 但typeof null object 鑑別引用型別 obj instaceof co...