C++ Primer 筆記(2)變數和基本類型_1,primer_1
一、基本內建類型
1、算術類型的儲存空間在不同機器上有所差別。
2、C++標準規定的尺寸的最小值
類型 最小尺寸char8bitshort16bitint16bitlong32bitlong long64bitfloat6位有效位元double 10位有效位元
3、C++規定,一個int至少和一個short int一樣大,一個long至少和一個int一樣大,一個long long至少和一個long一樣大
其中long long是在C++11中新定義的
4、通常int為1個字長,short為半個字長,long為1個或2個字長(在32位機器中為1個字長)
5、一般地,float類型用一個字長表示,double用兩個字長表示。
類型的取值範圍決定了浮點數所含的有效數字位元。如果沒有特殊要求,一般推薦使用double!
二、變數
1、C++是一門靜態類型語言,在編譯時間會作類型檢查;靜態類型檢查機制能夠協助我們更早的發現錯誤。
2、變數提供了程式可以操作的有名字的儲存區。變數的類型決定了變數的記憶體大小和布局,能夠儲存在該記憶體中的值的取值範圍以及可應用在該變數上的操作集。
3、聲明與定義
C++通過extern關鍵字聲明,向程式表明變數的類型和名字。因為extern是聲明,所以不分配儲存空間。
一個變數可以聲明多次,但只能定義一次
4、名字的範圍
大多數的範圍是通過花括弧來定界的。
C++範圍可嵌套:
//在函數內定義一個與函數可能會用到的全域變數同名的局部變數總是不好的,局部變數最好使用不同的名字!#include <iostream> #include <string> std::string s1 = "hello"; // s1 has global scope int main() { std::string s2 = "world"; // s2 has local scope // uses global s1; prints ``hello world'' std::cout << s1 << " " << s2 << std::endl; //int類型的s1將屏蔽掉std::string類型的s1int s1 = 42; // s1 is local and hides global s1 // uses local s1; prints ``42 world'' std::cout << s1 << " " << s2 << std::endl; return 0; }
5、通常把一個對象定義在它首次使用的地方是一個很好的方法!
6、變數命名習慣:
1)變數名一般小寫。
2)標識符應使用協助記憶的名字。
3)包含多個詞的標識符書寫在每個詞之間添加一個底線。
4)命名習慣最重要的是保持一致!