書:C++ Primer 5th Edition 中文版
●字元與字元串列字面值
○轉義序列(Escape Sequences)
●範疇(scope)
○複合型別(compound type)
字元與字元串列字面值
'a' //字元字面值
"hello" //字串字面值
字串是以常數chars所組成的陣列(array),編譯器會在每一個字串後面附加一個null字元('\0'),所以字串會比實際長度多1,字元'a'只有單字元'a',字串"a"有a、null兩個字元。
轉義序列(Escape Sequences)
或稱跳脫序列,這些字元是不可列印(nonprintable),引號、雙引號、問號、反斜線這些都有特殊意義。
newline |
\n |
carriage return |
\r |
alert(bell) |
\a |
double quote |
\” |
Single quote |
\’ |
backsalash |
\\ |
範疇(scope)
很少人會把一個變數名稱宣告在兩個範疇中,這樣很容易搞混。
全域範疇(global scope)
區塊範疇(block scope)
複合型別(compound type)
參考(reference)
指標(pointers)
1.參考(reference)
◆只要被繫結(bind)到其他變數(物件)就不能在重新繫結
◆宣告的參考要有初始值
◆只能繫結被宣告變數,不能繫結數字、字串...
可以想像成是他的替身,替身受到多少傷害,主體就受到多少傷害...。
2.指標(pointers)
◆指標是指向(points to)
◆不一定要有初始值
◆是一個物件,可以指定、拷貝
◆必須指向與指標相同型別的變數(物件)
◆'*'號稱為解參考(dereference)運算子
指標指向別的變數(物件)是指向他的位置(address)而不是參考的意思,不要搞混了。
一般來說指標有三個東西,是最常搞混的,只要對這三個東西有些疑惑在使用時就有可能會錯誤。
要更改指向的值就是: *ptr = a;
要跟改指向的變數: ptr = &a;
不同地方有不同含義。