目錄
1.數據類型概述
使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內存位置。這意味着,當創建一個變量時,就會在內存中保留一些空間。計算機是怎麼知道這個內存空間應該開多大?因爲可能存儲各種數據類型(比如字符型、寬字符型、整型、浮點型、雙浮點型、布爾型等)的信息,只有當明確指出當前變量或者常量的數據類型,操作系統會根據數據類型來分配內存和決定內存空間大小。
2.基本的內置類型
C++ 爲程序員提供了種類豐富的內置數據類型和用戶自定義的數據類型
整型
short2個字節
int 4字節
long 4字節(windos中4個字節Liunx的64位是8個字節)
long long 8字節
可以通過sizeof(數據類型或者變量)函數查看數據類型或者變量字節大小
#include <iostream>
using namespace std;
int main() {
cout <<"short大小" << +sizeof(short)<<endl;
cout <<"int大小" << + sizeof(int) << endl;
cout <<"long大小" << + sizeof(long) << endl;
cout <<"long long大小" << + sizeof(long long) << endl;
return 0;
}
實型(浮點型)
用來描述小數,有單精度float(4字節)和double雙精度(8字節)兩種,區別在於兩者精確範圍不同
程序中如何定義
對於單精度如下,定義一個單精度數a=3.14,默認小數是double的,當我們使用float接收的時候會轉成float,
所以最好定義的時候,在後面加個f,直接聲明就是單精度數
但是在c++中默認,小數最多隻能輸出6位有效數字,(可以通過配置輸出更多)
int main() {
float a = 3.1415926f;
double b = 3.1415926;
cout << a;//輸出3.14159
cout << b;//輸出3.14159
return 0;
}
字符型
字符型變量用於存儲單個字符,定義格式 char a='b';
注意:
1.顯示字符型變量只能是單引號,不能是雙引號
2.單引號裏面只能有一個字符,不能有多個
3.c/c++中字符佔一個字節
4.字符型變量只是將對應的ASCll編碼放在內存中,並不是字符本身,可以通過下面程序知道
int main() {
char a = 'c';
cout << (int)a;//輸出99
return 0;
}
轉義字符
表示一些不能顯示的ASCll字符
轉義字符 |
意義 |
ASCII碼值(十進制) |
\a |
響鈴(BEL) |
007 |
\b |
退格(BS) ,將當前位置移到前一列 |
008 |
\f |
換頁(FF),將當前位置移到下頁開頭 |
012 |
\n |
換行(LF) ,將當前位置移到下一行開頭 |
010 |
\r |
回車(CR) ,將當前位置移到本行開頭 |
013 |
\t |
水平製表(HT) (跳到下一個TAB位置) |
009 |
\v |
垂直製表(VT) |
011 |
\\ |
代表一個反斜線字符''\' |
092 |
\' |
代表一個單引號(撇號)字符 |
039 |
\" |
代表一個雙引號字符 |
034 |
\? | 代表一個問號 | 063 |
\0 |
空字符(NULL) |
000 |
\ddd |
1到3位八進制數所代表的任意字符 |
三位八進制 |
\xhh |
1到2位十六進制所代表的任意字符 |
二位十六進制
|
字符串型
用於表示一串字符,c++有以下兩種用來表示字符串
c風格的字符串
#include <iostream>
using namespace std;
int main() {
char a[] = "hell word";//格式 char 字符串名[]="字符串";
cout << a;//hell word
return 0;
}
c++風格的字符串
C++ 標準庫提供了 string 類類型
#include <iostream>
#include <string>//c++字符串需要加上這個頭文件
using namespace std;
int main() {
string a = "hell word";//格式string a="字符串"
cout << a;
return 0;
}
布爾類型bool
bool用來表示真或假,佔用內存空間爲1字節,取值只有false和true
false表示假,本質是0
true表示真,本質是1(默認非0值都代表1)
int main() {
bool flag = true;
cout << flag;//1
flag = false;
cout << flag;//0
return 0;
}