String賦值及儲存

2021-08-19 22:25:50 字數 1213 閱讀 9458

字串型別

1.string str = null; 

未分配儲存空間,表示str不指向任何字串物件,空引用 

null代表宣告了乙個空物件,對空物件做任何操作都不行的,除了=和== 

2.string str; 

分配了乙個記憶體空間,沒有進入任何物件,未初始化引用的 

在方法中定義:直接使用時編譯是不通過的,必須賦予初值 

在類中定義(靜態變數):可以不賦初值直接引用,預設賦值為空 

3.string str =「」; 

分配儲存空間,表示str指向乙個長度為0的字串物件 

「」代表宣告了乙個物件例項,這個物件例項的值是乙個長度為0的空字串 

4.string str =「a」;與string str = new string(「a」);區別 

前者是在字串池裡寫入乙個字元'a',然後用str指向它

5.string的賦值方式是   先在字串池中進行比對查詢,如果找到了,則把該字串的位址賦給引用,

如果找不到,則在字串池中重新分配空間,然後放值,最後將位址返回給引用

後者是在堆上建立乙個內容為「一」的字串物件

public static void main(string  args) else  

if(a == aa) else

if(bb == b) else

}a,b位址不同

a,aa位址相同

b,bb位址不同

字串和stringbuffer的的的引用

字串引用不會改變實參值

stringbuffer的引用則會改變實參值

public static void main(string  args)   

private static void change2(stringbuffer sb1,stringbuffer sb2)

public static void change(string str1,string str2)

你好----------------世界

你好----------------世界

你好----------------世界

你好-----------------世界

用第二種方式對字串進行初始化結果相同。

string賦值操作(6)

功能描述 給string字串進行賦值 賦值函式原型 string operator const char s char 型別字串 賦值給當前的字串 string operator const string s 把字串s賦給當前的字串 string operator char c 字元賦值給當前的字串...

String賦值的方式比較

string的賦值原則 1 new方式賦值的話,首先到pool中查詢是否有相應的值,假如沒有,在pool中建立這個物件 有的話,就到堆中例項化該物件,然後返回物件記憶體位址。2 字面值方式賦值的話,直接在pool中查詢,假如有的話,返回該物件 沒有的話,在pool中建立這個物件。例項1 結果 fal...

使用String逐個賦值字元

include include using namespace std int main include include using namespace std int main include include using namespace std int main 實驗結果如圖所示 string...