第三章??處理數據
3.1??簡單變量
? 3.1.1??變量名
? ? C++標識符命名規則如下:
? ? ?● ?在名稱中只能使用字母字符、數字和下劃線
? ? ?●??名稱的第一個字符不能是數字
? ? ●? 區分大寫字母和小寫字母
? ? ●??不能將C++關鍵字用作名稱
數據處理李云雁答案第三版、? ? ●??以兩個下劃線或下劃線和大寫字母開始的名稱被保留給實現(編譯器及其資源)使用,以一個下劃線開頭的名稱被保留給實現(庫函數的實現)。
? ? ●??C++對名稱的長度沒有限制,但是某些平臺有限制
? ? 3.1.2??命名方案
? ? 在變量名中使用變量類型作為前綴是好的習慣。例如整形變量可是使用n或者int的前綴、布爾型使用b前綴、指針使用p前綴、字符型使用c前綴、字符串型使用str或者sz前綴等。
3.2??整型
? ? 3.2.1??short, int, long?和?long long
? ? short, int, long?和?long long的比特位數有如下約定:
? ? ●??short至少為16位
? ? ●??int至少與short一樣長
數據處理的一般過程?? ? ●??long至少為32位,且至少與int一樣長
? ? ●??long long至少為64位,且至少與long一樣長
? ? 說明:?1.?可以使用sizeof運算符檢查類型的長度;
? ? ? ? ?2.?在climits頭文件中包含了關于整型的限制信息。
3.2.2??初始化方式
? ? ? ?C語言的初始化方式有:
int i = 5; //使用常量初始化
int j = i; //使用變量初始化
int k = i + j; //使用表達式初始化
? ? ? ?C++特有的初始化方式:
int l(100); //使用小括號
數據處理實驗報告總結、? ? ? ?C++11初始化方式:
int m = { 10 }; //使用大括號
int n{ 10 }; //使用大括號并省略等號
?
3.2.3??無符號類型
? ? 無符號類型有unsigned short、unsigned int、unsigned long、unsigned long long。
3.2.4??選擇類型
? ? int被設置為對目標計算機而言最“自然”的長度。這里“自然”是指計算機處理起來最快的長度。所以如果沒有其他理由應當盡量使用int。
3.2.5??字面值
? ? 如果第一位是1~9,則表示十進制;
? ? 如果第一位是0,第二位是1~7,則表示八進制;
數據處理的知識點、? ? 如果第一位和第二位是0X或0x,則表示十六進制;
? ? 整型字面值默認為int型(除非字面值過大或者加了表示其他類型的后綴);
? ? 整型字面值加上后綴可以表示其他類型;
? ? L或者l表示long型,U或者u表示unsigned,ul(順序和大小寫任意)表示unsigned long型,ull表示unsigned long long型。
3.2.6 char型:字符和小整數
? ? 默認的,char既不是有符號的也不是沒有符號的。是否有符號取決于C++的具體實現。但是可以手動指定符號,使用signed char和unsigned char。
? ? ? ?C++11新增:
數據處理算法,? ? ? ? ? ? 1)????????wchar_t。wchar_t有足夠的空間,可以表示系統使用的最大擴展字符集。
? ? ? ? ? ? 2)????????char16_t。表示無符號16位。
? ? ? ? ? ? 3)????????char32_t。表示無符號32位。
? ? 字符字面值用單引號括起來。如’a’和’A’。
? ? 通用字符名。通用字符集是由ISO制定的ISO 10646標準所定義的字符編碼方式。的用法類似于轉義序列。通用字符名以\u或者\U開始。\u后面跟4個十六進制數,使用2個字節,。\U后面跟8個十六進制數,使用4個字節。
3.2.7??bool類型
? ? ? C++將0值解釋為假,將其他值解釋為真。
數據處理和分析, 關鍵字true值為1;
關鍵字false值為0。
3.2.8??const限定符
? ? 用法如:
const int MONTHS = 12; //符號常量
? ? ? ?C語言使用#define定義符號常量。
? ? ? ?C++應使用const限定符。
3.3??浮點型
? ? 3.3.1??浮點數的書寫
? ? ? ? 1)????????標準小數點表示法
數據處理的一般過程課件、? ? ? ? 如:?12.34
? ? ? ? 2)????????E表示法
? ? ? ? 如:2.52e+8、2.3E-4
3.3.2??C++中的浮點數
? ? ? ?C++提供了三種浮點數:
? ? ● ?float。至少32位。
? ? ●??double。至少48位,且不少于float。一般為64位。
數據的計算機處理過程、? ? ●??long double。至少和double一樣多。一般為128位。
3.3.3??浮點常量
? ? 浮點字面值默認為double型。可用加入后綴表述其他類型。
? ? 加f或者F后綴為float型,加l或者L后綴為long double型。
3.4??類型轉換
? ? 3.4.1??自動類型轉換
? ? 遇到以下三種情形,C++自動執行類型轉換:
? ? ? ? 1)????????將一種算術類型的值賦給另一種算術類型的值
? ? ? ? 2)????????表達式中包含不同的類型時
數據處理教程。? ? ? ? 3)????????將不同于形式參數的實參傳遞給函數時
? ? 注意:C++11中,使用初始化列表時,初始化不允許縮窄(narrowing)。如
char ch = { 31325 }; //錯誤
? ? ? ?C++11中,算術表達式的自動轉換使用的校驗表如下:
? ? ? ? ? ? 1)????????如果有一個操作數的類型時long double,則將另一個操作數轉換為long double。
? ? ? ? ? ? 2)????????否則,如果有一個操作數的類型是double,則將另一個操作數轉換為double。
? ? ? ? ? ? 3)????????否則,如果有一個操作數的類型是float,則將另一個操作數轉換為float。
? ? ? ? ? ? 4)????????否則,說明操作數都是整型,因此執行整型提升。
? ? ? ? ? ? 5)????????在這種情況下,如果兩個操作數都是有符號或無符號的,且其中一個操作數的級別比另一個低,則轉換為級別高的類型。
? ? ? ? ? ? 6)????????如果一個操作數是有符號的,另一個操作數為無符號的,且無符號操作數級別比有符號操作數級別高,則將有符號操作數轉換為無符號操作數所屬的類型。
? ? ? ? ? ? 7)????????否則,如果有符號類型可表示無符號類型的所有可能取值,則將無符號操作數轉換為有符號操作數所屬的類型。
? ? ? ? ? ? 8)????????否則,將兩個操作數都轉換為有符號類型的無符號版本。
? ? 3.4.2??強制類型轉換
? ? ? ?C++允許通過強制類型轉換機制顯示地進行類型轉換。
? ? 強制轉換的通用格式如下:
typeName (value);(typeName) value;
? ? 也可以使用C++的static_cast,格式如下
static_cast<typeName>(value);
? ? 3.4.3??C++11中的auto聲明
? ? ? ?C++11新增一個工具,讓編譯器能夠根據初始值的類型推斷變量類型。定義了auto的含義。如:
auto x = 0.0; //x的類型是double
?