剛開始掌握一門語言時,會使用一些基本的類型,進行一些常見的運算,而若是要寫一些算法,好比數字累加和,計算面積,還須要使用到一些循環語句和條件判斷,C++ 都提供了詳細的規範。python
類型系統是語言的基石,C++ 的類型系統包括基本類型和混合類型。嚴格來講,課程中介紹了基本算術類型(arithmetic type),包括浮點類型,整數類型,布爾類型和字符類型。c++
整型細分有不少種,int
是最經常使用的整型,根據長度還分爲 int
, short int
, long int
, long long int
, 根據是否有符號,又能夠劃分未 signed int
unsigned int
等,所以共計8種類型, 有一些寫法是等價的。算法
浮點類型,主要爲float
,double
和 long double
,浮點都有符號。spa
布爾類型,就是bool
設計
字符類型,主要爲char
,根據是否有符號,分爲signed char
和 unsigned char
,經常使用的共計兩種,實際上還有寬字符。調試
一般,這些類型的長度在規範裏沒有規定,用 sizeof(類型)
能夠計算出來,且知足以下條件:code
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
常量 和 變量 有了數據類型以後,就能夠參與運算。變量是能夠發生變化的值,常量是不能夠變化的值。對象
變量須要經過類型 變量名
進行聲明,而後 最好進行初始化。例如 :blog
int a; a = 3;
常量 是直接表示的值,不能夠改變,好比ci
10,0xaa,077 //能夠用多種進制的方式表示證書常量 3.14 ,0.1E+2 //表示浮點數 true,false //表示bool 'a' 'b' '\n' //表示字符 「abcd" // c風格的字符串常量,隱含'\0'結尾,不推薦
常量也能夠用符號常量來表示,就是給常量一個名稱,方便使用
const double Pi = 3.1415926535;
有了類型和變量,能夠用一些運算符 進行運算,構成表達式或者語句。
和其餘語言基本沒有區別,常見算術運算是加減乘除取餘和賦值,須要注意優先級,記不住優先級有歧義的時候就加括號。
逗號運算,就是把兩個表達式,放在一條語句裏執行,結果是第二個表達式。
a= 1+1,a*3 整個表達式的結果爲6
關係運算,就是比較,邏輯運算,就是 與或非
sizeof運算,是表示某個類型所佔的字節數:
sizeof(int)
運算的時候要注意優先級,和其餘語言差很少。
類型轉換,c++中兩個不一樣類型的變量進行運算時,一般會進行隱式類型的轉換,須要注意反作用。而若是進行顯示類型的轉換,一般有以下寫法:
long b = 10l; int a = (int) b int a = int(b) int a = static_cast<int> b
一般瞭解一門新語言,都要學標準輸入和標準輸出。寫一個helloworld。標準輸出能夠用於調試,標準輸入實踐中不太經常使用。C++ 的輸入和輸出是面向對象的設計,把輸入和輸出的來源和目標設計爲對象,經過流
對象傳輸數據。其中內置了標準輸入流對象 cin,和標準輸出的流對象 cout ,相似於System.out
, System.in
。而且這兩個對象提供了插入操做符<<
>>
, 輸出對象,並且能夠進行鏈式操做。
cout << 「Hello" << "world"; int a, b; cin >> a >> b
等價於
System.out.print("Hello"); System.out.print("world"); int a, b; Scanner scanner = new Scanner(System.in); a = scanner.nextInt(); b = scanner.nextInt();
if
和 switch
時最經常使用的條件語句
if ( a > b) { cout << a << endl; }
switch(a) { case 1: cout << "1"; break; case 2: cout << "a"; break; default: cout << "default"; }
經常使用的循環有三種while
do while
for
int i = 1; while(i<=10) { cout << i << " "; i = i + 1; }
int i = 1; do { cout << i << " "; i = i + 1; } while (i <= 10)
for (int i = 1 ; i <= 10; i++) { cout << i << " "; }
這些循環和判斷之間能夠互相嵌套,經過continue 和 break 能夠控制是否跳出或者繼續循環
使用 typedef
或 using
能夠自定義類型名稱
typedef int MyInt; using MyInt = int; MyInt a = 10; MyInt a = MyInt(10);
能夠定義枚舉類型 enum
,這個和c 或者 go的從差很少,枚舉中的每一個變量的值是int,會有一個名稱,轉字符串須要手動實現。還有一種限定做用範圍的枚舉(class enum)
enum Weekday {SUN=7,MON=1,TUE,WEB,THU,FRI,SAT}; enum Weekday a = TUE; cout << int(a) << endl; // 限定做用範圍,使用枚舉的時候要帶上枚舉類的名稱 class enum Weekday {SUN=7,MON=1,TUE,WEB,THU,FRI,SAT}; enum Weekday a = Weekday::TUE; cout << int(a) << endl;
auto 和 decltype 用於支持類型推導,一般咱們說c++是強類型,賦值的時候不能像python同樣自動推導,auto 就能夠根據上下文自動推導類型。而decltype
能夠根據變量類型進行推導。
int a = 1; int b = 2; auto c = a + b; // 那麼c的類型自動爲 int decltype(c) d; // 那麼d的類型和c同樣
綜上所述,C++ 的基本類型有整型、浮點、布爾和字符,判斷語句if
,switch
, 循環語句for
,while
,do while
,而且支持枚舉,自動類型(auto),而且可使用內置的cin
,cout
進行輸入和輸出。