C++青少年简明教程:C++数据类型

C++青少年简明教程:C++数据类型

数据类型定义了变量可以存储哪些类型的数据,以及对这些数据可以进行哪些操作。C++提供了丰富的数据类型供开发者使用。

下面是 C++ 中常见的数据类型:

★整型(int):整数类型的数据用于表示整数值。不同的整数类型在占用的存储空间大小上有所区别。整数运算的基本操作(例如加法、减法等)。例如:

int age = 10;

int score = 90;

整数类型及数值范围:

short:-32768 到 32767

unsigned short:0 到 65535

int:-2147483648 到 2147483647

unsigned int:0 到 4294967295

long:-2147483648 到 2147483647

unsigned long:0 到 4294967295

long long:-9223372036854775808 到 9223372036854775807

unsigned long long:0 到 18446744073709551615

★浮点型(float和double):用于表示带有小数部分的数值,浮点数类型在计算机中的存储方式是近似值,因此在使用时需要注意精度问题,小数点后的位数。例如:

float weight = 34.5;

double height = 156.78;

浮点数类型及数值范围:

单精度(float):约 -3.4e38 到 3.4e38(精度为6位小数)

双精度(double):约 -1.7e308 到 1.7e308(精度为15位小数)

长双精度(long double):约 -1.7e308 到 1.7e308(精度为15位小数)

★字符型(char):用于表示单个字符。说明字符类型的数据表示和范围。讲解ASCII码和字符常量的概念,以及通过字符型变量可以存储字符数据。例如:

char grade = 'A';

在C++中,ASCII编码字符可以进行计算。在计算时,可以使用字符的 ASCII 值进行加、减、乘等运算,从而进行字符之间的操作。例如:

char c = 'B';

int asciiValue = c - 1; // 将字符'B'的ASCII值减1

char result = asciiValue; // 将结果转换回字符

cout << result; // 输出字符'A'

★布尔型(bool):布尔类型在计算机内存中占用一个字节,只有两种值(true或false)例如:

bool isTrue = true; // 布尔型变量,存储值为真

★枚举类型:

enum:用于定义一组命名的常量值。

★数组类型:

数组:用于存储相同类型的多个值。

★指针类型:

指针:用于存储变量的内存地址。

★结构体类型:

struct:用于定义一种包含多个不同类型成员的复合数据类型。

★类类型

class:类似于结构体,但具有更多的面向对象功能。

★字符串类型

C风格字符串:

char*:指向以null结尾的字符数组的指针,通常用于存储字符串。

例如:const char* str = "Hello, World!";

C++标准库中的string类:需要包含头文件 <string>。例如:

string name = "Alice"; // 字符串型变量,存储名字 "Alice"

string message = "Hello, World!";

特别提示,在使用C风格字符串时,需要注意字符串的长度和边界条件,避免造成溢出等问题。而使用string类则不需要过多考虑这些细节。

将下面的代码在电脑上输入并运行一下,可以查看到你的电脑上C++各种类型的整数都占多少字节呢?

源码如此下:

#include <iostream>
using namespace std;
 
int main() {
    int a;
    short b;
    long c;
    long long d;
 
    cout << "int 整数长度:" << sizeof(a) << endl;
    cout << "short 整数长度:" << sizeof(b) << endl;
    cout << "long 整数长度:" << sizeof(c) << endl;
    cout << "long long 整数长度:" << sizeof(d) << endl;
 
    return 0;
}
 

 运行效果:

 下面是查看实型(浮点型)占多少字节程序源码:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    // 创建一个双精度实型变量
double a = 3.912348239293;

    // 创建一个单精度实型变量
    float b = 3.912348239293f; //注意最后一位

    // 打印两个变量
    cout << "双精度:" << a << endl;
    cout << "单精度:" << b << endl;
    cout << setprecision(13); // 包含小数点和小数点后共13位。
    cout << "打印出小数13位:" << a << endl;

    return 0;

}

数据类型定义了存储在计算机内存中的数据的种类以及这些数据可以进行的操作——定义了数据的种类、表示方式、支持的操作以及内存使用方式。例如,整数类型(如 int、short、long)表示的是整数值,而浮点类型(如 float、double)表示的是带有小数点的数值。字符类型(如 char)则用于存储字符(通常是 ASCII 或 Unicode 编码)。每种数据类型都支持一组特定的操作。例如,可以对整数进行算术运算(如加法、减法、乘法、除法),但对字符进行算术运算可能没有意义。通过限制可以对变量执行的操作,数据类型有助于减少错误并增强代码的可读性。数据类型决定了变量在内存中占用多少空间。例如,int 类型在大多数现代系统上通常占用 4 字节(32 位)或 8 字节(64 位)的存储空间,而 char 类型通常只占用 1 字节。通过选择适当的数据类型,可以更有效地管理内存使用。在编译时,编译器会检查变量和表达式的类型,以确保它们之间的操作是有效的。如果尝试对不兼容的数据类型执行操作(如将整数与字符串相加),编译器将报告错误。这有助于在代码执行之前捕获潜在的错误。合适的数据类型可以增加程序的效率。例如,选择 float 还是 double 来存储浮点数,取决于对精度的需求与对性能的考虑。

本节仅对数据类型做概要介绍,初学者大体了解即可,后续还将在适当的地方介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/621469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零一万物发布千亿参数模型Yi-Large,李开复呼吁关注TC-PMF,拒绝Ofo式烧钱打法

5月13日&#xff0c;在零一万物成立一周年之际&#xff0c;零一万物 CEO 李开复博士携带千亿参数 Yi-Large 闭源模型正式亮相&#xff0c;正式进军全球 SOTA 顶级大模型之首&#xff0c;在斯坦福最新的 AlpacaEval 2.0 达到全球大模型 Win Rate 第一。除此之外&#xff0c;零一…

【代码随想录】【动态规划】背包问题 - 完全背包

完全背包 模板&#xff1a;完全背包问题 问题描述 完全背包问题与01背包问题唯一的区别在于&#xff1a; 在01背包中&#xff1a;每个物品只有一个&#xff0c;要么放入背包&#xff0c;要么不放入背包在完全背包中&#xff1a;每个物品有无限多个&#xff0c;可以不放入背…

迪安诊断数智中心战略与PMO负责人徐黎明受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 迪安诊断技术集团股份有限公司数智中心战略与PMO负责人徐黎明先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“软件研发项目管理指标体系建设实践”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xff01; …

Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程&#xff0c;现在是时候了解我们的明星了:响应式扩展&#xff0c;通常简称为Rx。微软开发了Reactive扩展库&#xff0c;使其易于处理事件流和数据流。在某种程度上&#xff0c;时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖…

电流反馈型运放设计要点总结

目录 前言 基本架构 CFB和VFB运算放大器的差异 总结&#xff1a;电流反馈(CFB)与电压反馈(VFB) 前言 最近一个项目用到THS3491&#xff0c;发生了震荡&#xff0c;这是一个电流型反馈运放&#xff0c;借此机会&#xff0c;温故一下&#xff0c;电流运放的相关设计知识 基本架…

JAVA远程调试步骤

1.生成参数 2.复制到启动命令中 3.打jar包运行到远程服务器中 4.开始远程调试

【数据结构与算法 刷题系列】环形链表的约瑟夫问题

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;数据结构与算法刷题系列&#xff08;C语言&#xff09; 目录 一、问题描述 二、解题思路详解 解题思路 解题步骤 三、C语言代码…

NSSCTF | [LitCTF 2023]我Flag呢?

这道题没啥好说的&#xff0c;题目标签为源码泄露&#xff0c;我们直接CtrlU查看网页源码就能在最后找到flag 本题完

Linux---windows 机器和远端的 Linux 机器如何通过 XShell 传输文件

一、关于rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 Xshell 传输文件. 二、下载rzsz软件 用root输入命令&#xff1a; sudo yum install -y lrzsz下载完成&#xff1a; 三、如何传输 有图形化界面 1、从Windows机器传输给远端Linux机器 ① 直接拖拽 直接将…

从编辑器角度来理解定义和声明

报错,在函数里面(包括int main函数)extern声明会和定义冲突 下面这种写法就很ok 静态变量的反汇编 #include<iostream> using namespace std; extern int c; int ma

Mysql与Java连接----JDBC

前言: 当将Java与MySQL数据库连接时&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是一种重要的技术。JDBC允许Java应用程序通过标准的数据库访问方式与不同的关系型数据库进行通信&#xff0c;其中包括MySQL。通过使用JDBC&#xff0c;Java开发人员可以…

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数

ICode国际青少年编程竞赛- Python-5级训练场-多参数函数 1、 def go(a, b):Spaceship.step(2)Dev.step(a)Spaceship.step(b)Dev.turnRight()Dev.step(b)Dev.turnLeft()Dev.step(-a) Dev.turnLeft() Dev.step(3) Dev.step(-3) go(3, 2) go(6, 1) go(5, 2) go(4, 3)2、 def go(…

processing完整教程

概述&#xff1a;processing在我眼里就是libgdx的高度封装&#xff0c;如果各位会libgdx&#xff0c;学processing应该可以说是无师自通&#xff0c;当然processing是java语言那边的。 processing是什么&#xff1f; 官网是这样解释的&#xff1a;Processing 是一本灵活的软件…

快速判断出485从站设备是否支持MODBUS RTU无线通讯

对于变频器和仪表设备&#xff0c;都支持485串口通讯&#xff0c;那么怎么判断从站设备支持那种协议呢&#xff1f;通常分为两种方式去判断&#xff1a;1.从设备参数参看2.从设备通讯报文查看。本次文章以以台达MH300系列变频器为例。 1.从设备通讯参数查看 使用设备之前一定…

C语言 文件操作

目录 1. 什么是文件&#xff1f;2. 二进制文件和文本文件3. 文件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 3.2 文件指针3.3 打开、关闭文件3.3.1 fopen - 打开文件3.3.2 fclose - 关闭文件 4. 文件的顺序读写4.1 fgetc - 从文件流获取一个字符4.2 fputc - 将一个字符写…

金融业开源软件应用 评估规范

金融业开源软件应用 评估规范 1 范围 本文件规定了金融机构在应用开源软件时的评估要求&#xff0c;对开源软件的引入、维护和退出提出了实现 要求、评估方法和判定准则。 本文件适用于金融机构对应用的开源软件进行评估。 2 规范性引用文件 下列文件中的内容通过文中的规范…

智能制造数字工厂未来三年规划方案(80页ppt下载)

一、资料介绍 智能制造数字工厂未来三年规划方案是一份全面而深入的战略性文件&#xff0c;旨在指导我们公司在未来三年内实现智能制造领域的跨越式发展。这份80页的PPT资料&#xff0c;以“智能制造、智能制造系统、数字化工厂、数字孪生工厂、智能工厂和数字化车间”为核心关…

Amesim基础篇-热仿真常用模型库-Electrical Basics/Electric Storage

前言 在动力电池仿真中中我们不免会用到该元件库中的模型&#xff0c;该库中包含基本的电路元件与电池模型。具体的相关模型介绍如下&#xff1a; 1 电压源、电流源、功率源、接地 如图&#xff0c;分别为电压源、电流源和功率源&#xff0c;其中功率源在仿真中经常用到&…

《intel开发手册卷3》读书笔记1

1、CPU工作模式 1&#xff09;实模式&#xff1a;8086的寄存器只有16位&#xff0c;我们也习惯于称8086的工作模式为16位模式。后续的CPU为了保持兼容性&#xff0c;在芯片上了电以后&#xff0c;还必须运行于16位模式之下。这种模式还有个正式的名字叫做实模式。在实模式下&am…

Stable Diffusion WebUI 绘画

配置环境介绍​ 目前平台集成了 Stable Diffusion WebUI 的官方镜像&#xff0c;该镜像中整合如下资源&#xff1a; GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本&#xff1a;v1.7.0 Python版本&#xff1a;3.1…