<h2>1.指針和引用</h2>
引用必須賦初始值,沒有空的孩锡,而指針可以為空
指針可以重新賦值酷宵,但引用總是指向最初的那個(gè)對(duì)象
當(dāng)知道需要指向某個(gè)東西且不會(huì)指向其他東西時(shí)候,或者是實(shí)現(xiàn)操作符無法使用指針時(shí)候躬窜,選用引用浇垦,否則使用指針。
#include <bits/stdc++.h>
using namespace std;
int main() {
string s1("fsdfsaf");
string s2("kfsdfsdf");
string &rs = s1;
string *ps = &s1;
rs = s2;
ps = &s2;
cout << rs << endl;
cout << (*ps) << endl;
cout << s1 << endl;
cout << s2 << endl;
return 0;
}
/*
這樣的執(zhí)行結(jié)果為:
kfsdfsdf
kfsdfsdf
kfsdfsdf
kfsdfsdf
可見:引用是不能被更改指向?qū)ο蟮娜侔ぃ噲D那樣做的結(jié)果就是使原來指向的對(duì)象值發(fā)生變化男韧,但指針可以朴摊。
*/
<h2>2.最好使用C++強(qiáng)制類型轉(zhuǎn)換</h2>
這里說的強(qiáng)制類型轉(zhuǎn)換不是說<font color = red>(類型)變量</font>和<font color = red>類型(變量)</font>的區(qū)別,說的是:
1.static_cast
2.const_cast
3.dynamic_cast
4.reinterpret_cast
用法:static_cast<類型>(變量)
例如此虑,把int 類型的變量a強(qiáng)制轉(zhuǎn)換為double甚纲,C中的寫法是(double)a
,C++ 中是double(a)
但是使用static_cast<double>(a)