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();

相关推荐
回家路上绕了弯7 小时前
五分钟内重复登录 QQ 号定位:数据结构选型与高效实现方案
分布式·后端
AI三林叔7 小时前
第2章 MCP协议深度解析
后端
Felix_XXXXL7 小时前
Spring Security安全框架原理与实战
java·后端
JaguarJack7 小时前
从零开始打造 Laravel 扩展包:开发、测试到发布完整指南
后端·php·laravel
星释8 小时前
Rust 练习册 :Minesweeper与二维数组处理
开发语言·后端·rust
小蒜学长8 小时前
springboot基于Java的校园导航微信小程序的设计与实现(代码+数据库+LW)
java·spring boot·后端·微信小程序
微学AI8 小时前
基于openEuler操作系统的Docker部署与AI应用实践操作与研究
后端
王元_SmallA8 小时前
IDEA + Spring Boot 的三种热加载方案
java·后端
LCG元8 小时前
实战:用 Shell 脚本自动备份网站和数据库,并上传到云存储
后端
Yeats_Liao8 小时前
时序数据库系列(四):InfluxQL查询语言详解
数据库·后端·sql·时序数据库