指標,指標,又見指標

2021-08-26 06:10:20 字數 655 閱讀 4119

在xcode中寫了一段下面的**: nsstring* s1=@"hi,i am sean"; nsstring* s2=@"hi,i am sean"; nsstring* s3=[nsstring stringwithformat:@"hi,i am %@",@"sean"]; s3=s1; if (s1==s2) 在debug模式看了一下,發現s1和s2 居然是同乙個指標;

s3雖然字元一樣,但是卻不是同乙個指標,這點通過debug可以觀察得到物件不一樣;

在s3=s1後,s1,s2,s3的指標完全相同(s3這點我可以理解)

而s1重新設定資料後指標發生了變化;

上面這個指標的定義是不是同我印象中c關於指標的定義和構成不一樣呢?

是不是在objective c中相同型別相同資料的物件為了節省記憶體空間都指到了乙個位址呢?

而當重新再分配發生的時候再賦予新的位址?

值得注意的是最初的s3和s1,s2等不是同一種物件型別

(那麼兩個[object new]建立的物件是否最初的指標也是一樣的呢?理論上這樣,nsstring本身也是物件。明天來測試。

伴發性的疑惑是如果物件裡面有物件,還有屬性,重設了任何乙個的值,是所有的屬性和物件的指標都不相同了呢還是部分還是保持一致?

好像是保持一致?不管了,明天測試完再去重新讀一下資料

指標,指標,指標。。。

1 指標常量與常量指標 int a 10 int const p1 a const int p2 a p1是不可改變位址的常量,即指標常量,但可以對它所指向的內容進行修改。p2是指向常量的指標,即常量指標,它所指向的位址內容是不可修改的,但其本身確實可以修改的。2 指標運算 includeint m...

指標,指標,指標。。。

1 指標常量與常量指標 int a 10 int const p1 a const int p2 a p1是不可改變位址的常量,即指標常量,但能夠對它所指向的內容進行改動。p2是指向常量的指標,即常量指標,它所指向的位址內容是不可改動的,但其本身確實能夠改動的。2 指標運算 includeint m...

指標 陣列指標 指標陣列 指向指標的指標

程式中一般通過變數名對變數進行訪問操作,其實質是通過位址進行的。對變數的訪問分為直接訪問和間接訪問,如語句 printf d i 執行的時候,根據變數名 與位址的對應關係,找到i的位址,依次取相應的位元組數中的資料 即i的值 把它輸出。這種按照變數位址訪問變數值的方式成為直接訪問 還可以將變數i的位...