一:變數初始化新方式
(1)
int a =10;
//傳統的變數初始化方式
(2)c++新標準支援的初始化方式
int b
;int c =
;intd(
3);int e =(5
);
那麼使用()和{}對變數進行初始化是否有好處?
答案是肯定的。
在傳統的變數初始化方式中,
int a =
10.6f
;//可以把乙個浮點型資料賦給乙個整型變數,編譯器只會提示,丟失精度
然而,這樣賦值,編譯器直接會報錯。
int a
;int b=
;intg(
3.1f);
int h =
(5.5f
);
這種新的賦值方式,進一步保證了書寫的**的健壯性。
二:string型別
(1)string:用來處理可變長字串用的,string型別位於using namespace std命名空間中,
使用時需要包含#include 標頭檔案,string型別可以理解成乙個類型別。
(2)string型別的初始化方式
string s1 ;
//空串,內容為"";
string s2 =
"i love china"
;string s3
("i love china");
string s4 = s3;
string s5 =
;string s6
;string s7 (5,
'a')
;//"aaaaa"
string s8
;//"aaa"
(2)string常用的操作
(a)判斷是否為空,empty(),返回布林值。
string s1 ;
if(s1.
empty()
)//成立
(b)size()/length(),返回位元組數/字元數量。返回乙個無符號數。
string s1 ;
cout << s1.
size()
<< endl;
//0cout << s1.
length()
<< endl;
//0string s2 =
"abc"
;cout << s2.
size()
<< endl;
//3cout << s2.
length()
<< endl;
//3string s3 =
"我愛你"
;cout << s3.
size()
<< endl;
//6,乙個漢字兩個字元
cout << s3.
length()
<< endl;
//6
string s1=
"dklajdal"
;cout << s1[3]
<< endl;
//a,n從0開始
(d)字串拼接
string s1=
"dklajdal"
;string s2 =
"abc"
;string s3 = s1 + s2;
cout << s3 << endl;
//"dklajdalabc"
(e)判斷字串是否相等
string s1=
"dklajdal"
; string s2 =
"abc";if
(s1 != s2)
string s3 =
"abc"
; string s4 =
"abc";if
(s3 == s4)
//大小寫敏感,長度相等,大小寫一樣
(f)s.c_str(),返回乙個字串s中的內容指標(常量指標),出現這個的原因只要是為了與c語言當中的字元指標相相容。
string s1=
"dklajdal"
const
char
*p = s1.
c_str()
;//p指向了s1當中的字串了
(g)讀入內容
string s1;
cin >> s1;
cout << s1 << endl;
(h)和字面值相加,這裡涉及到了類的隱式型別轉換。
string s1=
"ab"
;string s2 =
"bc"
;string s3 =
"aa"
+"bb"
;//錯誤
string s4 =
"aa"
+"bb"
+ s2;
//錯誤
string s5 = s1 +
"bb"
;string s6 =
"aa"
+ s1 +
"bb"
;//"aa"和s1相加生成了臨時的string物件
變數初始化的方式
當物件在建立時獲得了乙個特定的值,我們說這個物件被初始化了。用於初始化變數的值可以是任意複雜的表示式。當一次定義了兩個或多個變數時,物件的名字在定義後就馬上可以使用了。例如我們可以這樣使用 使用剛剛定義的price初始化discount double price 109.99,discount pr...
string 物件初始化
我在標頭檔案裡這樣宣告 wf error writelog log level mlevel,module code mmodule,string msg,string filename null,int line num 0 在windows下編譯 執行沒問題,但是linux下編譯可以通過,執行時...
變數初始化
int a 是變數定義,也就是說編譯器將為a分配儲存,這在編譯時被處理。int a 0 是定義 初始化,定義的分配儲存的action在編譯時完成,初始化的action則在執行時完成 將執行類似dword ptr ebp 4 0的指令,而單獨的int a 不會有對應的執行指令 定義是分配空間,而初始化...