1. 程式人生 > 其它 >02章-資料型別--C++基礎入門學習筆記

02章-資料型別--C++基礎入門學習筆記

2 資料型別

C++規定在建立一個變數或常量時,必須要指定出相應的資料型別,否則無法分配記憶體

2.1整型

作用: 整型變量表示的是資料型別的資料
意義:給變數分配合適的記憶體空間
C++中能夠表示整型的型別有以下集中,區別在於所佔記憶體空間不同

資料型別 佔用空間 取值範圍
short(短整型) 2位元組 (-215~215-1)
int(整型) 4位元組 (-2^31 ~ 2^31 -1)
long(長整型) Windows為4位元組,Linux為4位元組,8位元組(64位) (-231~231-1)
long long(長整型) 8位元組 (-263~263-1)

示例

#include<iostream>
using namespace std;
int main()
{
	//整型
	//1、短整型
	short num1 = 10;

	//2、整型
	int num2 = 10;

	//3、長整型
	long num3 = 10;
	//4、長長整型
	long long num4 = 10;

	cout << "num = " << num1 << endl;
	cout << "num = " << num2 << endl;
	cout << "num = " << num3 << endl;
	cout << "num = " << num4 << endl;
	
	system("pause");
	return 0;
}

2.2 sizeof 關鍵字

作用:利用sizeof關鍵字可以統計資料型別所佔記憶體大小
語法sizeof(資料型別/變數)
示例

#include<iostream>
using namespace std;

int main(void)
{
	//整型:short(2);int(4);long(4);long long(8)
	//可以利用sizeof求出資料型別佔用大小
	//語法:sizeof(資料型別/變數)

	short num1 = 10;
	cout << "short 佔用記憶體空間為:" << sizeof(short) << endl;
	cout << "num1 佔用記憶體空間為:" << sizeof(num1) << endl;
	cout << "int 佔用記憶體空間為:" << sizeof(int) << endl;
	cout << "long 佔用記憶體空間為:" << sizeof(long) << endl;
	cout << "long long 佔用記憶體空間為:" << sizeof(long long) << endl;

	system("pause");
	return 0;
}

2.3 實型(浮點型)

作用:用於表示小數

  1. 單精度float
  2. 雙精度double
    兩者的區別在於表示有效數字範圍不同
資料型別 佔用空間 有效數字範圍
float 4位元組 7位有效數字
double 8位元組 15~16位有效數字
示例
#include<iostream>
using namespace std;

int main()
{
	//1、單精度 float
	//2、雙精度 double
	float f1 = 3.1415926;

	cout << "f1 = " << f1 << endl;

	double d1 = 3.1415926;
	cout << "d1 = " << d1 << endl;

	//統計float和double佔用記憶體空間
	cout << "float 佔用記憶體空間為:" << sizeof(float) << endl;
	cout << "double 佔用記憶體空間為:" << sizeof(double) << endl;

	//科學計數法
	float f2 = 3e2; // 3 * 10 ^2
	cout << "f2 = " << f2 << endl;
	float f3 = 3e-2; // 3 * 0.1 ^ 2
	cout << "f3 = " << f3 << endl;
	system("pause");
	return 0;
}

2.4 字元型

作用:字元型變數用於單個字元
語法char ch = 'a';

注意1:在顯示字元型變數時,用單引號將字元括起來,不要用雙引號
注意2:單引號只能有一個字元,不可是字串

  • C和C++中字元型變數只佔用1個位元組
  • 字元型變數並不是把字元本身放到記憶體中儲存,而是將對應的ASCII編碼放入到儲存單元
#include<iostream>

using namespace std;

int main()
{
	//1、字元型變數建立方式
	char ch = 'a';
	cout << ch << endl;

	//2、字元型變數所佔記憶體大小
	cout << "char 字元型變數所佔的記憶體:" << sizeof(char) << endl;
	//3、字元型變數常見錯誤
	//char ch2 = "b"; //建立字元型變數時候,要用單引號
	//char ch2 = 'abcdef'; //建立字元型變數時候,單引號只能一個字元


	//4、字元型變數對應ASCII編碼
	//a - 97
	//A - 65
	cout << (int)ch << endl;

	system("pause");
	return 0;
}

ASCII碼錶格百度一下

  • ASCII 非列印控制字元;ASCII表上數字0-31分配給了控制字元,用於控制像印表機等一些外圍裝置
  • ASCII列印字元:數字32-126分配給了能在鍵盤上找到的字元,當檢視或列印文件時就會出現

2.5 轉義字元

作用:用於表示一些不能顯示出來的ASCII字元
現階段常用的字元\n \\ \t

轉義字元 含義 ASCII碼值(十進位制)
\a 警報 007
\n 換行(LF),將當前位置移到下一行開頭 010
\t 水平製表(HT),跳到下一個TAB位置 009
|代表一個反斜槓"" 092

其他百度
例程

#include<iostream>
using namespace std;

int main()
{
	//轉移字元
	//換行符\n
	cout << "hello world" << endl;
	cout << "hello world \n";
	//反斜槓
	cout << "\\" << endl;

	//水平製表符\t 
	//作用整齊的輸出資料
	cout << "aaaaaaa\taaa" << endl;
	cout << "aaa\taaaaa" << endl;
	cout << "aaaaa\taaaa" << endl;
	system("pause");
	return 0;
}

2.6 字串型

作用:用於表示一串字元
兩種風格

  1. C風格字串:char 變數名[] = "字串值"

注意:C風格的字串要雙引號括起來

  1. C++風格字串:string 變數名="字串值"
    示例
#include<iostream>
#include<string> //用C++風格字串時候要用該標頭檔案
using namespace std;

int main()
{
	//1、C風格
	//注意事項 char 字串名+[]
	//注意事項2 等號後面要用雙引號 包含起來字串
	char str[] = "hello world";
	cout << str << endl;

	//2、C++風格字串
	//注意事項 包含標頭檔案 #include<string>
	
	string str2 = "hello world";
	cout << str2 << endl;

	system("pause");
	return 0;
}

2.7布林型別 bool

作用:布林資料型別代表真或假的值
bool型別只有兩個值:

  • true --真(本質是1)
  • false --假(本質是0)
    bool型別佔1個位元組大小
    示例
#include<iostream>
using namespace std;

int main()
{
	//1、建立bool資料型別
	bool flag = true;
	cout << flag << endl;

	flag = false;
	cout << flag << endl;

	//本質上 true 1 false 0
	//2、檢視bool型別所佔記憶體空間
	cout << "bool型別所佔記憶體空間" << sizeof(bool) << endl;
	system("pause");
	return 0;
}

2.8資料的輸入

作用:用於從鍵盤獲取資料
關鍵字:cin
語法cin >> 變數
示例

#include<iostream>
#include<string>
using namespace std;

int main()
{
	//1、整型	
	int a = 0;
	cout << "請給整型變數a賦值:" << endl;
	cin >> a;
	cout << "整型變數a=" << a << endl;

	//2、浮點型
	float f = 3.14f;
	cout << "請給浮點型變數f賦值" << endl;
	cin >> f;
	cout << "浮點型變數f=" << f << endl;
	//3、字元型
	char ch = 'a';
	cout << "請給字元型變數ch賦值" << endl;
	cin >> ch;
	cout << "字元型變數ch = " << ch << endl;

	//4、字串型
	string str = "hello";
	cout << "請給字串str賦值" << endl;
	cin >> str;
	cout << "字串str = " << str << endl;
	
	//5、布林型
	bool flag = false;
	cout << "請給bool型別 flag賦值" << flag << endl;
	cin >> flag; //非零值都代表真
	cout << "布林型別bool = " << flag << endl;

	system("pause");
	return 0;
}