C++ 中的数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存.
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) |
数据类型存在的意义:给变量分配合适的内存空间。
#include<iostream>
using namespace std;int main()
{//整型//1、短整型short num1 = 10;//2、整形int num2 = 10;//3、长整型long num3 = 10;//4、长长整型long long num4 = 10;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;cout << "num3 = " << num3 << endl;cout << "num4 = " << num4 << endl;system("pause");return 0;}
日常开发中最常用的是int
2 sizeof关键字
作用:利用sizeof关键字可以统计数据类型所占内存大小
语法:sizeof(数据类型/变量)
示例:
int main() {short mum = 10;cout << "short 类型所占内存空间为:" << sizeof(short) << endl;cout << "num所占内存空间为:" << sizeof(num) << endl;cout << "int 类型所占内存空间为:" << sizeof(int) << endl;cout << "long 类型所占内存空间为:" << sizeof(long) << endl;cout << "long long 类型所占内存空间为:" << sizeof(long long) << endl;system("pause");return 0;}
3 实型(浮点型)
浮点型变量分为两种:
- 单精度float
- 双精度double
两者的区别在于表示的有效数字范围不同。
数据类型 | 占用空间 | 有效数字范围 |
float | 4字节 | 7位有效数字 |
double | 8字节 | 15~16位有效数字 |
示例:
int main() {//单精度float f1 =3.1415926f;cout << "f1 =" << f1 <<endl;//双精度double d1 = 3.1415926;cout << "d1 =" << d1 <<endl;// 默认情况下 输出一个小数,会显示6位有效数字//统计float和double占用的内存空间cout << "float占用内存空间为:" << sizeof(float) << endl;cout << "double占用内存空间为:" << sizeof(double) << endl;//科学计数法float f2=3e2; //3*10^2;cout << "f2 = " << f2 << endl;float f3=3e-2; //3*0.1^2;cout << "f3 = " << f3 << endl;system ("pause");return 0;}
4 字符型变量
作用:字符型变量用于显示单个字符
语法:char ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
- C和C++中字符型变量只占用1个字节。
- 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
示例:
#include<iostream>
using namespace std;int main() {//1、字符型变量创建方式char ch = 'a';cout << ch << end;//2、字符型变量所占内存大小cout << "char字符型变量所占内存:" << sizeof(char) << endl;//3、字符型变量常见错误//char ch2 = "b";//创建字符型变量的时候,要用单引号//char ch2 = 'abcdef';//创建字符型变量的时候,单引号内只能有一个字符//4、字符型变量对应ASCII编码//a---97//A---65cout << (int)ch << endl;system("pause");return 0;}
附 ASCII码表格
5 转义字符
作用:用于表示一些不能显示出来的ASCII字符
现阶段我们常用的转义字符有: \n \\ \t
转义字符 | 含义 | ASCII码值(十进制) |
\a | 警报 | 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 | 数字0 | 000 |
\ddd | 8进制转义字符,d范围0~7 | 3位八进制 |
\xhh | 16进制转义字符 | 3位16进制 |
示例:
int main() {cout << "\n" << endl;cout << "\\" << endl;cout << "\tHello" << endl;system("pause");return 0;
}
6 字符串型
作用:用于表示一串字符
两种风格
1.C风格字符串:char 变量名[ ] = "字符串值"
示例:
int main() {char str1[] = "hello world";cout << str1 << endl;system("pause");return 0;}
注意:C风格的字符串要用双引号括起来
2.C++风格字符串:string 变量名 = “字符串值”
示例:
int main() {string str = "hello world";cout << str << endl;system("pause");return 0;}
注意:C++风格字符串,需要加入头文件#include<string>
7 布尔类型 bool
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
- true --- 真(本质是1)
- false --- 假(本质是0)
bool类型占1个字节大小
示例:
int main() {bool flag = true;
cout << flag << endl;//1flag = false;
cout << flag << endl;//0cout << "size of bool =" << sixeof(bool) << endl;//1system("pause");
return 0;}
8 数据的输入
作用:用于从键盘获取数据
关键字:cin
语法:cin >> 变量
示例:
int main() {//整形输入int a = 0;cout << "请输入整形变量" << endl;cin >> a;cout << a << endl;//浮点型输入double d = 0;cout << "请输入浮点型变量:" << endl;cin >> d;cout << d << endl;//字符型输入char ch = 0;cout << "请输入字符型变量:" << endl;cin >> ch;cout << ch << endl;//字符串型输入string str = "hello";cout << "请输入字符串:" << endl;cin >> str;cout << str << endl;//布尔型输入bool flag = false;cout << "请输入布尔型变量:" << endl;cin >> flag;system("pause");return 0;}
相关文章:
C++ 中的数据类型
C规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存. 1 整型 作用:整型变量表示的是整数类型的数据 C中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同: 数据类型占用…...

CSS|04 复合选择器伪类选择器属性选择器美化超链接
基本选择器:见上篇基本选择器 复合选择器选择器1,选择器2{属性:值;} 多元素选择器,同时匹配选择器1和选择器2,多个选择器之间用逗号分隔举例: p,h1,h2{margin:0px;}E F{属性:值;} 后代元素选择器,匹配所有属于E元素后…...
探索Batch注释的奥秘:REM与::的细微差别
探索Batch注释的奥秘:REM与::的细微差别 在编写Batch文件时,注释是必不可少的部分,它们帮助我们理解代码的意图和逻辑。Batch脚本提供了两种添加注释的方法:REM命令和双冒号::。虽然它们功能相似,但在使用上存在一些细…...
C语言 求数列 S(n) = a + aa + aaa + …aa…a (n 个 a)的和
求数列S(n)aaaaaa…aa…a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如222222222222222(此时n5) 这个程序读取用户输入的一个数字 a 和一个正整数 n,计算并输出数列 S(n) 的值。 #include …...
MysqlDump
介绍:mysqldump是一个常用的命令行工具,它用于备份或导出MySQL或MariaDB数据库中的数据。这个工具可以创建一个SQL文件,其中包含数据库的结构和数据,这样就可以在其他MySQL服务器上重新创建数据库或进行数据迁移。 基本语法&#…...

某安全公司DDoS攻击防御2024年6月报告
引言: 在2024年6月,网络空间的安全挑战汹涌澎湃。分布式拒绝服务(DDoS)攻击频发,针对云服务、金融科技及在线教育平台的精密打击凸显出当前网络威胁环境的严峻性。 某安全公司作为网络安全防护的中坚力量,…...

Centos下rpm和yum执行卡住问题(已解决)
问题描述 执行rpm和yum卡住, 没有任何报错信息,且无法 ctrl c 终止,只能通过后台 kill -9 杀死。 问题排查: 查看yum日志:yum -vv 软件包 会发现卡在 loading keyring from rpmdb,即load DB存在问题。 …...
python自动化办公之PyPDF2.errors.DeprecationError
背景:pypdf2库在不断更新换代里面的类,逐渐淘汰一些旧的类 PyPDF2.errors.DeprecationError的意思是我们代码里用到的类计划被淘汰了,系统不推荐使用,解决办法:根据提示use xxx instead使用xxx 替换之前的类 例子1 P…...

[leetcode]first-unique-character-in-a-string 字符串中的第一个唯一字符
. - 力扣(LeetCode) class Solution { public:int firstUniqChar(string s) {unordered_map<int, int> frequency;for (char ch: s) {frequency[ch];}for (int i 0; i < s.size(); i) {if (frequency[s[i]] 1) {return i;}}return -1;} };...

使用uniapp.pageScrollTo方法进行页面滚动
先看看是不是你想要的: 需求: 有个填写数据的单子在提交的时候,会对必填项做校验,如果必填项没有数据的话,必填项校验生效给出提示,并且页面滚动到第一个需要填写数据的地方。 开发: 因为这个…...

寒武纪实现高维向量的softmax进阶优化和库函数对比
关于寒武纪编程可以参考本人之前的文章添加链接描述,添加链接描述,添加链接描述 实验证明,axis=0和axis=-1的时候,手写softmax速度可以和库函数媲美,甚至于更甚一筹。 src/softmax.mlu #include <bang.h> #include...

我的世界服务器-高版本服务器-MC服务器-生存服务器-RPG服务器-幻世星辰
生存为主,RPG乐趣为辅,重视每位玩家的建议,一起打造心目中的服务器,与小伙伴一起探险我的世界! 服务器版本: 1.18.2 ~ 1.20.4 Q群: 338238381 服务器官网: 星辰毛毛雨-Minecraft高版本生存服务器我的世界…...

倒装COB显示屏与传统SMD显示屏安装方式有哪些不同?
COB显示屏与传统SMD显示屏是商业显示领域中非常重要的两种载体,在前面的文章当中我们为大家阐述了倒装COB显示屏的技术特点,今天跟随COB显示屏厂家深圳市中品瑞科技一起来看看,COB显示屏的安装与传统LED显示屏的安装有哪些不同? 一…...

elasticsearch重置密码
0 案例背景 Elasticsearch三台集群环境,对外端口为6200,忘记elasticsearch密码,进行重置操作 注:若无特殊说明,三台服务器均需进行处理操作 1 停止es /rpa/bin/elasticsearch.sh stop 检查状态 ps -ef|grep elast…...
微信小程序写一个可以滚动虚拟列表(瀑布流),减少dom渲染的优化,解决内存问题。
为什么要写这个? 因为在写小程序的时候首页功能比较多,造成渲染的dom有很多,一直setdata跳转到其他页面或者一直滑动就会卡顿,白屏。官方文档上那个不适用于瀑布流。官方文档 理解 刚开始在写这个的时候,就在想微信…...
人工与智能系统之间的交互方式
人工与智能系统之间的交互方式 #mermaid-svg-xSsFZWak2bsyV0un {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xSsFZWak2bsyV0un .error-icon{fill:#552222;}#mermaid-svg-xSsFZWak2bsyV0un .error-text{fill:#5522…...

【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
文章目录 前言增加守护进程1. 编写监控脚本2. 创建 systemd 服务文件3. 启动并启用服务4. 验证服务是否运行注意事项 如何修改守护进程1. 修改监控脚本2. 重新加载并重启服务3. 验证服务是否运行总结 如何设置一个日志文件来查看信息1. 修改监控脚本以记录日志方法一࿱…...
调用基类的纯虚函数,如何知道纯虚函数会调用哪个派生类(子类)中的实现。
在 C 中,调用基类的纯虚函数实际上是通过运行时多态性来决定调用哪一个派生类的实现。这种机制是通过虚函数表(vtable)和虚函数指针(vptr)实现的。下面我们来详细探讨一下这个过程。 虚函数表和虚函数指针 虚函数表&a…...

塑造卓越企业家IP:多维度视角下的策略解析
在构建和塑造企业家IP的过程中,我们需要从多个维度进行考量,以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我:企业家需要清晰地认识到自己的…...

Rust 跨平台-Android 和鸿蒙 OS
1. 安装 rustup rustup 是 Rust 的安装和版本管理工具 $ curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh 该命令会安装 rusup 和最新的稳定版本的 Rust;包括: rustc Rust 编译器,用于将 Rust 代码编译成可执行文件或库。 ca…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...