字串型別
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的賦值方式是 先在字串池中進行比對查詢,如果找到了,則把該字串的位址賦給引用,
如果找不到,則在字串池中重新分配空間,然後放值,最後將位址返回給引用
後者是在堆上建立乙個內容為「一」的字串物件
字串和stringbuffer的的的引用public static void main(string args) else
a,b位址不同if(a == aa) else
if(bb == b) else
}
a,aa位址相同
b,bb位址不同
字串引用不會改變實參值
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...