1.整型

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型 占用空间 取值范围
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)

2.sizeof关键字

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

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

  1. sizeof(short)
int main() {

    cout << "short 类型所占内存空间为: " << sizeof(short) << endl;//2

    cout << "int 类型所占内存空间为: " << sizeof(int) << endl;//4

    cout << "long 类型所占内存空间为: " << sizeof(long) << endl;//4

    cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;//8

    system("pause");

    return 0;
}

3.实型(浮点型)

默认情况下,输出一个小数,会显示出6未有效数字;

有效数字

例如有一个浮点数3.14,其中小数点前面的3也是有效数字,所以它的有效数字为3位;

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

1.单精度float

float f1 = 3.14f;

float 类型后面多个一个f;
不加f,会把小数默认为双精度;
image.png
如果使用float 来接收3.14,会把3.14转换为单精度,这样会多做一步转换;
当我们在小数点后加了f,就会把3.14f,直接认为单精度;
image.png

2.双精度double

double d1 = 3.14;

8字节,15~16位有效数字;

3.示例

int main() {
    float f1 = 3.14f;
    double d1 = 3.14;

    cout << f1 << endl;//3.14
    cout << d1<< endl;//3.14

    cout << "float  sizeof = " << sizeof(f1) << endl;//4
    cout << "double sizeof = " << sizeof(d1) << endl;//8

    //科学计数法
    float f2 = 3e2;// e后面为整数,代表10 ^ 2 ;3 * 10 ^ 2 
    cout << "f2 = " << f2 << endl;//300

    float f3 = 3e-2;  // e后面为负数,代表0.1 ^ 2;3 * 0.1 ^ 2
    cout << "f3 = " << f3 << endl;//0.03

    system("pause");

    return 0;
}

4.字符型

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

语法:char 变量名 = 'a';

char ch = 'a';

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


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

  • C和C++中字符型变量只占用1个字节。
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
char ch = 'a';
    cout << ch << endl;//a
    cout << sizeof(char) << endl;//1

    cout << (int)ch << endl;  //97;查看字符a对应的ASCII码 
    ch = 97; //可以直接用ASCII给字符型变量赋值
    cout << ch << endl;//a

    system("pause");

    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 DEL

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

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

    5.转义字符

    作用:用于表示一些不能显示出来的ASCII字符
    现阶段我们常用的转义字符有:\n \ \t

6.字符串类型

作用:用于表示一串字符

    // 单个反斜杠(\)
    cout << "aa\\aa" << endl;//aa\aa
    //tab
    cout << "Hello\tWord" << endl;//Hello    Word
    //换行
    cout << "aaa\naaa" << endl;//aaa换行aaa
    system("pause");
    return 0;

两种风格

1.C风格字符串:

char 变量名[] = “字符串值”

char str1[] = "hello world";
int main() {
    char str1[] = "hello world";
    cout << str1 << endl;//hello world
    system("pause");
    return 0;
}


2.C++风格字符串:

string 变量名 = “字符串值”

string str = "hello world";

C++风格字符串,需要加入头文件#include

#include<iostream>
#include<string>
using namespace std;
int main() {
    string str = "hello world";
    cout << str << endl;//hello world
    system("pause");
    return 0;
}


7.布尔类型 bool

bool类型只有两个值:

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

bool类型占1个字节大小

    bool flag = true;
    cout << flag << endl; // 1

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

    cout << "size of bool = " << sizeof(bool) << endl; //1

    system("pause");

    return 0;

8.数据的输入 cin >>

语法:cin >> 变量

    int a = 0;
    cout << "请输入整型变量:" << endl;
    cin >> a;
    cout << a << endl;
    system("pause");
    return 0;