<h2>1.指針和引用</h2>
引用必須賦初始值,沒有空的,而指針可以為空
指針可以重新賦值,但引用總是指向最初的那個對象
當知道需要指向某個東西且不會指向其他東西時候,或者是實現操作符無法使用指針時候,選用引用,否則使用指針。
#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;
}
/*
這樣的執行結果為:
kfsdfsdf
kfsdfsdf
kfsdfsdf
kfsdfsdf
可見:引用是不能被更改指向對象的,試圖那樣做的結果就是使原來指向的對象值發生變化,但指針可以。
*/
<h2>2.最好使用C++強制類型轉換</h2>
這里說的強制類型轉換不是說<font color = red>(類型)變量</font>和<font color = red>類型(變量)</font>的區別,說的是:
1.static_cast
2.const_cast
3.dynamic_cast
4.reinterpret_cast
用法:static_cast<類型>(變量)
例如,把int 類型的變量a強制轉換為double,C中的寫法是(double)a
,C++ 中是double(a)
但是使用static_cast<double>(a)