main和_tmain取決於程序是否使用unicode,使用爲_tmain
註釋的另一種形式是以/*和*/爲界
using std::cout;告訴編譯器,只要使用名稱cout,就表示std::cout
1.125E2,其中小數部分與E(代表指數)後面指定的10的冪相乘。=1.125x10²
常量結尾f指定它屬於float型,如果沒有f,這個常量就是double型。
typedef關鍵字能夠爲現有的類型定義自己的類型名稱:typedef long int bigones;把bigones定義爲long int 的別名
cout<<std::setiosflags(std::ios::left)//設置爲左對齊
順序 | 運算符 | 關聯性 |
1 | :: | 無 |
2 | ()【】-> . ++ -- typeid const_cast reinterpret_cast | 左向右 |
3 | logical not ! unary + unary - type cast sizeof decltype new new[] | 右往左 |
4 | .* ->* | 左向右 |
5 | * / % | 左向右 |
6 | + - | 左向右 |
7 | << >> | 左向右 |
8 | == != | 左向右 |
9 | & | 左向右 |
10 | ^ | 左向右 |
11 | | | 左向右 |
12 | && | 左向右 |
13 | || | 左向右 |
14 | ?: | 右向左 |
15 | = *= /= %= += -= &= ^= |= <<= >>= | 右向左 |
16 | throw | 右向左 |
17 | , | 左向右 |
如果一個運算符既有一元形式又有二元形式,一元形式始終具有較高的優先順序,因而首先執行
包含被轉換值的變量本身不會改變,編譯器把轉換後的值存儲在一個臨時的內存位置,在計算完成後刪除
關鍵字static_cast表明將靜態檢查類型強制轉換,也就是在編譯程序時檢查,dynamic_cast將動態轉換,就是執行程序時
const_cast用於刪除表達式中的const屬性,reinterpret_cast是一種無條件的強制轉換
auto關鍵字用作變量的類型,變量的類型根據提供的初始值來推斷,但不要與初始化列表用在一起,因爲初始化列表的類型爲
std::initializer_list<int> auto n=16;//n類型爲int
typeid操作符能確定表達式的類型,可以如此:typeid(x*y).name();
按位與&,全都爲1才爲1,否則爲0,可以用來把變量中特定的位設置爲0,創建掩碼,想0的地方爲0,想保持的地方爲1
按位或|,有1就爲1 按位異或,相同爲0,不同爲1//異或的性質,當兩個char變量,則
first^=last;last^=first;first^=last; 則first ,last在不佔用任何中間存儲單元的情況下交換了值
按位否,0變1,1變0 按位左移和右移,二進制形式直接向左或向右偏移給定的位數,左移相當於乘以2的n次冪,右移除以
2的n次冪,捨棄餘數。
lvalue指的是內存中持續存儲數據的一個地址。實地址。rvalue是臨時存儲的表達式的結果
全局變量的創建和初始化發生在Main()函數執行之前
使用作用域符可以使用全局變量,用::變量名
不一定要接受枚舉器的默認類型,而可以把枚舉器的類型顯示指定爲除wchar_t之外的其他整數類型如:
enum Weekdays: unsigned long {mon,tues,wed} tomorrow;//現在weekdays的枚舉器是unsigned long類型
安全類型枚舉型enum class ......不支持值得隱式轉換。
定義自己的名稱空間: namespace mystuff{ ... };