01.C++数据类型

1 数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应数据类型,否则无法给变量分配内存

1.1 整型

作用:整型变量表示的是证书类型的数据

C++中能够表示整型的类型有一下集中方式,区别于所占内存控件不同

数据类型 占用空间 取值范围
short(短整型) 2字节 -215~215-1
int(整型) 4字节 -231~231-1
long(长整型) windows为4字节,linux为4字节(32位),8字节(64位) -231~231-1
long long (长长整形) 8字节 -263~263-1

1.2 sizeof关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小

语法:sizeof(数据类型 / 变量)

示例:

short < int < = long < = long long

#include 
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;
    

    system("pause");

    return 0;
}

1.3 实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:

1、单精度 float

2、双精度 double

两者的区别在于表示的有效数字范围不同。

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字
double 8字节 15-16位有效数字

示例:

#include 
using namespace std;

int main()
{
    //单精度 float
    float f1 = 3.14f;  //float类型的数都会加上f ,不加f默认double类型
    
                       //默认情况下,输出一个小数,会显示6位有效数字
    float f2 = 3.141592653666f;
    
    //双精度 double
    double d1 = 3.14;  
    
    cout << f1 << endl;
    cout << f2 << endl;
    cout << d1 << endl;

    //统计float和double占用内存空间
    cout << "float占用内存空间" << sizeof(float) << endl;

    cout << "double占用内存空间" << sizeof(double) << endl;

    //科学计数法
    float f3 = 3e2;  //3*10^2
    cout << f3 << endl;

    float f4 = 3e-2; //3*10^-2
    cout << f4 << endl;

    return 0;
}

1.4 字符型

作用:字符型变量用于显示单个字符

语法:char ch = ' a ';

注意1:显示字符型变量是,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • c和c++中字符型变量只占用一个字节。
  • 支付性变量并不是吧字符本身放在内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

#include 
using namespace std;

int main()
{
    //1、字符型变量创建方式
    char ch = 'a';
    cout << ch << endl;

    //2、char占用内存空间大小
    cout << sizeof(char) << endl;

    //3、字符型变量产检错误
    //char ch2 = "b"; //创建字符型变量的时候,要用单引号
    //char ch3 = 'acasd ' //创建字符型变量时候,单引号内只能有一个字符

    //4、字符型变量对应的ASCII编码
    // a -- 97
    // A -- 65 
    cout << (int)ch << endl;

    return 0;
}

ASCII码表格:

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 `
31 US 63 ? 95 _ 127 DE

ASCII码大致由以下两部分组成:

  • ASCII非打印控制字符: ASCII表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备
  • ASCII打印字符:数字32-126分配给了能在键盘上找到的字符。当查看或打印文档时就会出现

1.5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有:\n \\ \t

转义字符 意义 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 空字符(NUL) 000
\ooo 1到3位八进制数所代表的任意字符 三位八进制
\xhh 十六进制所代表的任意字符 十六进制

示例:

#include 
using namespace std;

int main()
{
    //换行符 \n

    cout << "hello " << endl;
    cout << "hello \n";

    //反斜杠 \\

    cout << "\\ "<< endl;

    //水平制表符  \t  跳到下一个Tab位置
    cout << "aaaaa\thello "<< endl;

    system("pause");
    return 0;
}

1.6 字符串型

作用:用于表示一串字符

两种风格

​ 1、C风格字符串:char 变量名[ ] = "字符串值"

示例:

#include 
int main()
{
    //注意事项 char 字符串名 [ ]
    //         = 后面要用双引号 包括起来字符串
    char str1[] = "hello world";
    cout << str1 << endl;

    system("pause");
    return 0;
}

注意:C风格的字符串要用双引号括起来

1、C++风格字符串:string 变量名 = "字符串值"

示例:

#include 
using namespace std;
#include //c++风格要添加string头文件

int main()
{

    string str2 = "hello world";
    cout << str2 << endl;

    system("pause");
    return 0;
}

注意:C++风格字符串,需要添加头文件 #include

1.7 布尔类型 bool

作用:布尔数据类型代表真或假的值

bool类型只有两个值

  • true ----真 (本质是1)
  • false ----假 (本质是0)

bool类型占1个字节大小

示例:

#include 
using namespace std;


int main()
{

    //1、创建bool数据类型
    bool flag = true;
    cout << flag << endl;//1

    flag = false;
    cout << flag << endl;//0

    //2、查看bool类型所占内存空间

    cout << "bool类型所占内存大小:" << sizeof(bool) << endl;

    system("pause");
    return 0;
}

1.8 数据的输入

作用:用于从键盘读取数据

关键字:cin

语法:cin >> 变量

示例:

#include 
using namespace std;
#include

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、字符型
    float ch = 'a';
    cout << "请给字符型变量ch赋值:" << endl;
    cin >> ch;
    cout << "字符型变量ch=" << ch << endl;

    //4、字符串型
    string str = "hello";
    cout << "请给字符串型变量ch赋值:" << endl;
    cin >> str;
    cout << "字符串型变量str=" << str << endl;

    //5、布尔类型
    bool flag = true;
    cout << "请给布尔类型变量ch赋值:" << endl;
    cin >> flag; //只要输入是非0的都是真
    cout << "布尔类型变量bool=" << flag << endl;

    system("pause");

    return 0;

}

你可能感兴趣的:(01.C++数据类型)