C++ primer學習記錄
阿新 • • 發佈:2018-12-22
DAY1
g++ -o name name.cpp
編譯命令 , -o hello是編譯器引數,指定了可執行檔案的檔名
echo $? 獲取剛才結束的程式的返回值
檔案重定向 ./檔名 <輸入檔案> 輸出檔案
for example: ./file<in>out
DAY2
extern //宣告,可以跨檔案使用變數 extern const int a const int *p;//可以改變指標的指向,但不能改變指標所指位置的值(p是指向常量的指標) int *const p;//不能改變指標的指向,但可以改變指標所指位置的值(p是常量指標) const int *const p;//既不能改變指標的指向,也不能改變指標所指位置的值(p是指向常量的常量指標)
DAY3
宣告為constexpr的變數一定是一個常量,且必須用常量表達式初始化 一個constexpr指標的初始值必須是nullptr或者0或者儲存於某個固定地址中的物件 函式體內定義的變數"一般"並非存放在固定的地址中,因此constptr不能指向這樣的變數 constptr宣告中如果定義了一個指標,限定符僅對指標有效,與指標所指的物件無關 指標本身是個常量稱為 頂層const 指標指向一個常量稱為 底層const 當執行對物件的拷貝操作時 頂層const不受影響 而底層const卻會帶來限制 拷入和拷出的物件必須具有相同的底層const資格 auto 一般會忽略掉頂層const,並保留底層const 如果希望推斷出的auto 型別是一個頂層const需 const auto auto 和 decltype 區別 1 auto 忽略頂層const decltype 保留頂層const 2 遇到引用,auto推斷出原有型別,decltype推斷出引用 3 對解引用操作 auto推斷出解引用操作,decltype推斷出引用 4 auto會實際執行,decltype不會執行