C++数据类型(整型、浮点型、字符型、字符串型、布尔型)
⽂章⽬录
C++创建变量或常量时,必须指定数据类型,否则⽆法为变量分配内存。
数据类型的意义:为变量分配合适的内存空间,避免浪费内存资源。
1 整型
作⽤:整型变量表⽰整数类型的数据。
C++中共有4种表⽰整型的类型,区别在于所占内存空间和可表⽰的取值范围不同。
注:实际开发中,较多使⽤int类型表⽰整型数据,占⽤空间⼤⼩为4字节。
数据类型占⽤空间取值范围short(短整型)2字节(-2^15 ~ 2^15-1) int(整型)4字节(-2^31 ~ 2^31-1) long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31 ~ 2^31-1) long long(长长整形)8字节(-2^63 ~ 2^63-1)
注:不同整型占⽤的内存空间⽐较:short < int <= long <= long long。
2 sizeof关键字
作⽤:sizeof关键字可统计数据类型所占⽤的内存⼤⼩
语法:sizeof(数据类型) 或 sizeof(变量名)
⽰例:
int main(){
cout <<"short 类型占⽤的内存⼤⼩:"<<sizeof(short)<< endl;
int num =10;
cout <<"int 类型占⽤的内存⼤⼩:"<<sizeof(int)<< endl;
cout <<"int 类型占⽤的内存⼤⼩:"<<sizeof(num)<< endl;
cout <<"long 类型占⽤的内存⼤⼩:"<<sizeof(long)<< endl;
cout <<"long long 类型占⽤的内存⼤⼩:"<<sizeof(long long)<< endl;
system("pause");
return0;
}
3 浮点型(实型)
作⽤:浮点型变量表⽰⼩数类型的数据。
浮点型变量分为两种,区别在于表⽰的有效数字范围不同。
(1)单精度float:4字节
(2)双精度double:8字节
数据类型占⽤空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字
注1:有效数字包括整数部分和⼩数部分。
注2:C++输出多位⼩数时默认会显⽰6位有效数字,需进⾏额外配置以完整显⽰全部有效数字。
注3:float类型表⽰⼩数时,在数字末尾显式地使⽤字母f表⽰单精度,否则编译器会默认将⼩数视为双精度浮点型(double),再进⾏类型转换(由double型转换为float型)。
⽰例:
int main(){
float f1 =3.1415926535f;
cout <<"float 类型占⽤的内存⼤⼩:"<<sizeof(float)<< endl;
cout <<"float 类型占⽤的内存⼤⼩:"<<sizeof(f1)<< endl;
double d1 =3.1415926535;
cout <<"double 类型占⽤的内存⼤⼩:"<<sizeof(double)<< endl;
cout <<"double 类型占⽤的内存⼤⼩:"<<sizeof(d1)<< endl;
//科学计数法表⽰整数
float f2 =3e2;// 3 * 10 ^ 2
cout <<"f2 = "<< f2 << endl;
//科学计数法表⽰⼩数
float f3 =3e-2;// 3 * 0.1 ^ 2
cout <<"f3 = "<< f3 << endl;
return0;
}
4 字符型
C和C++语⾔中,字符型变量只占⽤1个字节。
字符型变量是将对应的ASCII编码存放⾄内存,⽽不是字符本⾝。
作⽤:字符型变量可表⽰单个字符。
语法:char ch = 'a';
注1:使⽤单引号表⽰字符,且单引号内有且仅有1个字符,不可以是字符串。
注2:使⽤ (int) ch 查询字符对应的ASCII编码。'a’对应97,'A’对应65。
⽰例:
int main(){
//字符型变量创建⽅式
char ch ='a';
cout << ch << endl;
//字符型变量所占内存⼤⼩
cout <<"char字符型变量占⽤的内存⼤⼩:"<<sizeof(char)<< endl;
cout <<"char字符型变量占⽤的内存⼤⼩:"<<sizeof(ch)<< endl;
//字符型变量常见错误
//char ch2 = "b";  //错误:表⽰字符时需使⽤单引号
//char ch2 = 'abcdef'; //错误:单引号内只能有⼀个字符
//字符型变量对应ASCII编码(a:97; A:65)
cout <<(int)ch << endl;
浮点型变量floatreturn0;
}
ASCII码表格:
ASCII值控制字符ASCII值字符ASCII值字符ASCII值字符0NUT32(space)64@96、1SOH33!65A97a 2STX34"66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f 7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j 11VT43+75K107k 12FF44,76L1
08l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383S115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v 23TB55787W119w
24CAN56888X120x ASCII值控制字符ASCII值字符ASCII值字符ASCII值字符25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL
ASCII 码的⼤致组成部分:
(1)⾮打印控制字符:ASCII 表的 数字0-31 分配给控制字符,⽤于控制如打印机等外围设备。
(2)打印字符:ASCII 表的 数字32-126 分配给键盘上的字符。
5 转义字符
作⽤:表⽰⼀些特殊的⽆法直接显⽰的ASCII字符。
常⽤的转义字符有:\n \\ \t
注1:C语⾔中使⽤转义字符\n换⾏,C++中使⽤endl换⾏。
注2:表⽰⽔平制表符的转义符\t占据8个字符宽度。
转义字符含义ASCII码值(⼗进制)\a警报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数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围0-9,a-f,A~F3位16进制
⽰例:
int main(){
cout <<"\\"<< endl;
cout <<"\tHello"<< endl;
cout <<"\n"<< endl;
return0;
}
6 字符串型
作⽤:表⽰⼀串字符
(1)C风格字符串: char 变量名[] = "字符串值";
(2)C++风格字符串: string 变量名 = "字符串值";
⽰例:
#include<iostream>
#include<string>
using namespace std;
int main(){
//C风格字符串
char cStr[]="hello c str";
cout << cStr << endl;
//C++风格字符串
string cppStr ="hello cpp str";
cout << cppStr << endl;
return0;
}
注1:使⽤C风格字符串时,需使⽤双引号将字符串值括起来。
注2:使⽤C++风格字符串时,需包含头⽂件#include <string>。
7 布尔类型 bool
作⽤:布尔数据类型表⽰真或假的值。
bool类型占1个字节⼤⼩,且只有两个值:
(1)true: 真(本质是1)
(2)false:假(本质是0)
注:C++的bool类型中,true 或 任意⾮0值 均代表“真”; false 或 0值 代表“假”。⽰例:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。