Javer 学 c++(三):数据类型篇

总览

本篇主要讲了 c++ 的数据类型,包括整形、浮点型、字符、转义字符、字符串、布尔、输入等

数据类型的作用:给变量分配合适的内存空间

一、整型

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    short a = 10;
    int b = 20;
    long c = 30;
    long long d = 40;

    cout << a << " " << b << " " << c << " " << d << endl;

    return 0;
}

和 Java 相似的形式,同时超出最大值也会发生溢出的问题,重新从最小值开始计数

sizeof 关键字

作用:用来求出数据类型的大小

使用:sizeof(数据类型) or sizeof(数据)

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    short a = 10;
    int b = 20;
    long c = 30;
    long long d = 40;
    // 结果为 2 4 8 8
    cout << sizeof(a) << " " << sizeof(b) << " " << sizeof(c) << " " << sizeof(d) << endl;

    return 0;
}

二、实型(浮点型)

作用:用来表示小数

分类: float 单精度 double 双精度

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    // 单精度
    float pi = 3.14f;
    // 双精度
    double p = 3.14;
    // 结果为 float: 3.14159  double: 3.14159
    cout << "float: " << pi << "  double: " << p << endl;

    return 0;
}

默认小数只显示 5 位,如果需要显示更多,需配置

科学计数法

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    // 单精度
    float f = 3e-2;
    // 结果为 0.03
    cout << "float: " << f << endl;

    return 0;
}

三、字符型

作用:用来显示单个字符

语法: char ch = 'a';

注意一:必须用单引号,不可以是双引号

注意二:引号内必须为单个字符,不能是多个

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    // c++ 中字符型只占一个字节
    char ch = 'a';
    // 并不是把字符本身存到内存单元,而是存 ASCII 码
    cout << "char: " << ch << endl;
    // 结果为 97
    // 记一下 a=97,A=65
    cout << "ASCII: " << (int)ch << endl;
    return 0;
}

为什么 Java 中的 char 占用的两字符,而 c++ 只有一个字符?

如果只表示 ASCII 码的话,Java 也可以用一个,但是由于字符种类的增多,目前国际标准其实已经变为了 UTF-8,已经超出了一个字符能够表示的范围,所以 Java 采用了两字符。

c++ 也可以通过 u8'char' 来表示 utf-8 下的字符

四、转义字符

作用:用来表示一些不能显示的字符,比如空格、回车等

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    // 换行符 \n
    cout << "Hello World\n";

    // 反斜杠 \

    cout << "\" << endl;

    // 水平制表符 \t  对齐效果
    cout << "aaa\tHello World";
    
    // 结果为  Hello World
    //        \
    //        aaa     Hello World

    return 0;
}

五、字符串型

作用:表示字符串

风格一:c风格字符串

c++ 复制代码
#include <iostream>
using namespace std;

int main() {
    // c风格:char 变量名[] = 变量值;
    char str[] = "abcd";

    cout << str << endl;

    return 0;
}

风格二:c++字符串

c++ 复制代码
#include <iostream>
using namespace std;
#include <string>

int main() {
    // c++风格:string 变量名 = 变量值;
    const string str = "abcd";

    cout << str << endl;

    return 0;
}

类比 Java 的话,首字母大小写不同,Java 中字符串为 String,c++ 为 string

六、布尔类型

作用:代表真或假的值

bool 类型只有两个值:

  • true,表示真(本质是 1)
  • flase,表示假(本质是 0)

bool 类型只占 1 字节

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    bool flag = false;
    // 输出 0
    cout << flag << endl;
    // 输出 1,代表只占 1 字节
    cout << sizeof(flag) << endl;

    return 0;
}

Java 中布尔类型为 Boolean,c++ 和 python 相同,为 bool

七、数据的输入

作用:从键盘获取数据

语法:cin >> 变量

c++ 复制代码
#include <iostream>
using namespace std;

int main() {

    double d = 1.5;

    cout << "请给变量 d 赋值:";
    // 键盘输入 100
    cin >> d;
    // 赋值后 d = 100
    cout << "赋值后 d = " << d << endl;

    return 0;
}

输入应该是类比 Java 中的 System.Scanner

Scanner sc = new Scanner(System.in);

int x = sc.nextInt();

相关推荐
IguoChan23 分钟前
D2L(1) — 线性回归
后端
8***293123 分钟前
Go基础之环境搭建
开发语言·后端·golang
梅花1425 分钟前
基于Django房屋租赁系统
后端·python·django·bootstrap·django项目·django网站
提笔了无痕26 分钟前
go web开发表单知识及表单处理详解
前端·后端·golang·web
qq_124987075328 分钟前
基于SpringBoot技术的企业请假审批管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·信息可视化·毕业设计
小哀242 分钟前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
ziwu1 小时前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·后端·图像识别
程序员Easy哥1 小时前
ID生成器第一讲:原理和常见几种生成器
后端
q***73551 小时前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
Penge6661 小时前
Elasticsearch 跳表(Skip List):有序结果合并的 “性能电梯”
后端