C++-3-變數及資料型別
變數
定義:變數是計算機中一塊特定的記憶體空間,由一個或多個連續的位元組組成。
通過變數名可以簡單快速的找到記憶體中儲存的資料。
可以用namespace避免重名(後面講)
命名規則:
-
首字母只能是"_"和字母
-
其他字母可以是"_"、字母和數字
-
不能是關鍵字
-
不能用關鍵字(不用背,編輯器會有提示(變顏色了就是保留字))
注意:
-
不要使用拼音
-
儘量不要使用單個英文單詞
-
提倡使用有正式含義的英文單詞
常識:8 bit 位元= 1byte位元組
例如:網速20M bps (bit per second),需換算成位元組除以8,則是真實的我們理解的網速。
C++常用資料型別
資料型別 | 型別說明符 | 位數 | 取值範圍 |
---|---|---|---|
整型 | int | 32 | -2147483648~+2147483647 |
短整型 | short int | 16 | -32768~+32767 |
長整型 | long int | 32 | -2147483648~+2147483647 |
單精度浮點型 | float | 32 | -3.4E-38~+3.4E+38 |
雙精度浮點型 | double | 64 | -1.7E-308~+1.7E+308 |
字元型 | char | 8 | -128~+127 |
注:
-
long和int是一樣的
-
再長一點是longlong ,c++11的標準,64位,取值範圍-9223372036854775808~+9223372036854775807可以表示1970年1月1日到現在的毫秒數
-
浮點數儘量使用double型別
-
字元型屬於整型
-
bool型別類似java中的boolean,0是false,非0是true.屬於整型
資料型別總結:
-
整型:char、char16_t、char32_t、int、short、long、bool、long long
-
浮點型:float、double、long double
-
非數值型:string
-
其他常用數值型別:size_t型別、列舉型別、自定義型別、指標型別、空型別等。
typedef:用於自定義資料型別
用法:
typedef string wode_string; wode_string name = "我定義的資料型別"; cout << name << endl; return 0;
float
-
位數:32位
-
空間:2個位元組
-
取值範圍:
-
6~7位有效數字
宣告及初始化
-
float ball = 100.0
-
float apple;
apple = 2.5f
注:
- float型別變數賦值時建議在數值的末尾加上f。
- cmath標頭檔案定義了c++中的庫函式,其中c表示函式是來自c標準庫的函式,math為數學常用庫函式。
程式碼示例:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
//已知圓柱體的半徑和高,球圓柱體的體積
//半徑
float radius = 2.5f;
//高
float height = 4.0f;
//圓柱體體積 = 底面積 * 高
float volume = 3.14 * pow(radius, 2) * height;
cout << "圓柱體體積為:" << volume << endl;
}
double
-
位數:64位
-
空間:8個位元組
-
取值範圍:
-
15位有效數字
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
//控制cout的顯示精度
//1.強制以下小數的方式顯示
cout << fixed;
//2.控制顯示精度
cout << setprecision(2);
//輸出double型別的資料
double doubleNum = 100.0/3.0;
cout << doubleNum * 10000000<< endl;
// 3.setw()控制它後面的緊挨著的內容的寬度
cout << "|" << setw(8) << 2.5f * 3.0f << "|" << endl;
//4.sizeof用來測量資料型別的長度
cout << sizeof(double) << endl;
}
char
-
位數:8位
-
空間:1個位元組
-
取值範圍:-128~+127
8個二進位制表示一個char型別
宣告及初始化
- char apple = ‘A’;
注:
- 有符號signed char,取值範圍-128~127
- 無符號unsigned
補充:
-
C++是C的升級版,C++具有面向物件
-
C++11新增型別 :long long、char16_t 、char32_t
-
引入頭windows.h檔案
#include <windows.h>
設定windows彈框title
SetConsoleTitleA("windows彈框title");
效果如圖:
cout、cin
cout
用於列印輸出內容
左對齊:
cout<< left;
同理右對齊left改為right,後面的內容則左對齊;
列印三句話設定每句話寬度10個位元組並且左對齊:
cout<< left;
cout << setw(10) << "第一句話" << "," << "\n";
cout << setw(10) << "第二句話" << "," << "\n";
cout << setw(10) << "第三句話" << "." << endl;
如果同樣設定列印英文的4個位元組:
cout << setw(10) << "aaaa" << "," << "\n";
則發現列印結果是:
長度:一箇中文字元 = 兩個英文字元
並且如果cout設定的左對齊,會一直生效,直到設定為別的樣式為止。
cin
用於獲取輸入內容
用法:
int num;
char ch;
//輸入內容賦值給num
cin >> num;
cin >> ch;
//如果輸入1234abcd
//則自動擷取1234賦值給num,擷取第一個字元a賦值給ch。
還可以:
int num;
num = cin.get();
O-1609060574265)]
長度:一箇中文字元 = 兩個英文字元
並且如果cout設定的左對齊,會一直生效,直到設定為別的樣式為止。
cin
用於獲取輸入內容
用法:
int num;
char ch;
//輸入內容賦值給num
cin >> num;
cin >> ch;
//如果輸入1234abcd
//則自動擷取1234賦值給num,擷取第一個字元a賦值給ch。
還可以:
int num;
num = cin.get();