C++中的数据

一.常量

1.常量的概念:

在程序执行的过程中,值不会改变的量

2.字面常量:

被书写到代码内的常量称为字面常量,也被称为字面量

(1).整型字面常量:整数,不带小数点的数字

(2).实型字面常量:小数,带有小数点的数字

(3).字符型字面常量:以单引号('')包围的单个字符(只能是单个)

(4).字符串字面常量:以双引号("")包围的任意个字符

3.符号常量

1.概念:

在C++中,可以用一个标识符来表示一个常量,称之为符号常量(也就是说,给常量起一个名字,那就是符号常量)

2.特点:

是编译后写在代码区,不可寻址,不可更改,属于指令的一部分

3.定义语法:

#define 标识符(名称) 常量

4.简单案例:

#include "iostream"
using namespace std;
// 符号常量定义在代码的头部 ,并且在定义好了之后不需要使用分号结尾
#define MY_NAME "Jack" 

int main() {
	// 输出符号常量 
	cout << MY_NAME << endl; 
	// 最终输出的结果是Jack 
	return 0;
} 

5.关于在C++中无法正确输出中文的解决方式

①:引入windows.h库

#include "windows.h"

然后在主函数中编写:

SetConsoleOutputCP(CP_UTF8);

②:在主函数中写上这么一行代码:

system("chcp 65001");

6.使用符号常量时需要注意的细节:

①:定义在代码头部,先定义后使用

②:符号常量名是标识符,符合字母、数字、下划线组合的要求并且数字不可以放在开头

③:字母建议和后续的变量进行区分

二.标识符和关键字

在C++代码中会涉及到许多命名的场景,比如变量的命名,以及后续学习的类、函数等命名,这些命名被我们统称为标识符(表示某类实体的符号)

1.标识符的内容限定:

①:只允许数字、字母和下划线的组合

②:数字不可以放在变量的开头

③:不可以使用到关键字

2.关键字的概念:

C++ 关键字是编程语言保留的单词,这些单词具有特定的含义,并在编译过程中被编译器识别和处理。由于关键字有特殊的用途,因此不能将它们用作标识符(变量名、函数名、类名等)

三.变量的基础应用

1.变量的概念:

变量指的是在程序运行时能存储计算结果或能表示值的抽象概念

简单地说,变量就是在程序运行时记录数据用的一种容器

2.变量的作用:

用于在程序运行过程中记录数据(变量可以被重复使用)

3.变量的声明和赋值

(1).变量的声明:

对变量进行定义,也就是声明

语法:

变量类型 变量名;
// 变量名也是标识符,需要符合标识符的特点

(2).变量的赋值:

在变量中存入数据,也就是赋值

语法:

变量名 = 变量值;

(3).举例:

#include "iostream"
using namespace std;

int main() {
	// 变量的定义与使用 
	int age = 18; 
	cout << age << endl; 
	return 0;
} 

4.变量的特征:

变量中存储的数据是可以发生改变的,如果想要修改变量值,只需要再次使用赋值语句对其赋值即可

5.变量的快速定义

除了基本的先声明后赋值的应用之外,变量还支持多种快捷的使用形式

1.声明和赋值同步完成

int num = 10;

2.一次性声明多个变量

int x, y, z; // 声明多个变量时中间用逗号隔开即可

3.一次性声明多个变量的同时对其进行赋值

int x = 10, y = 20, z = 30;

三.标识符的命名规范

1.符号常量:

在满足标识符的硬性要求之下,如若使用英文字母,应该全部大写

2.变量:

在满足标识符的硬性要求之下,如果使用英文字母,不应该全部大写(大小写组合或纯小写)

四.标识符的限制规则

1.标识符:

用来标识某个实体的符号,在编程语言中表示代码中所使用的各类名称,目前我们接触到的标识符有符号常量名和变量名,除此之外还有类名,文件名,方法/函数名等等

2.标识符的使用限制分为两类:

①:硬性限制被称为规则

②:软性限制被称为规范

3.三类规则

①:内容限定:

仅可使用字母、数字、下划线的组合,并且数字不可放在开头

②:大小写敏感:

大写字母和小写字母的名称是不同的可区分的

③:不可使用关键字:

关键字是C++语言内置使用的特殊标识符,用户不可以占用

五.整型数据类型

在这种数据类型中包含四种不同的数据类型,分别是short(短整型),int(整型),long(长整型),long long(长长整型),它们所占用的空间分别为2字节,4字节,4字节,8字节

使用sizeof函数即可确定不同数据类型占用的内存空间

int ans = 10;
cout << sizeof(ans) << endl;

六.无符号和有符号数字

在C++中,数字分为无符号和有符号两类

无符号数字:仅仅允许正数存在

有符号数字:可以允许负数存在

那么怎么在C++程序中体现出这两种数字呢?

有符号数字的选项是signed,无符号数字的选项是unsigned(默认是有符号signed)

#include "iostream"
using namespace std;

int main() {
	// 有符号数(signed是默认值,省略没写) 
	int num1 = 10;
	// 无符号数 
	unsigned int num2 = 20;
}

七.实型数据类型

在这种数据类型中包含三种不同的数据类型,分别是float,double,long double,它们所占用的空间分别为4字节,8字节,16字节,有效位数分别为6-7位,15-16位,18-19位,超出有效位数的数据可能会出错

实型数据没有signed和unsigned定义有无符号,默认全是有符号数

八.字符型数据类型

在这种数据类型中包含两种不同的数据类型,分别是有符号char类型和无符号char类型,它们所占用的空间都为一个字节,范围分别为-128-127,0-255

1.char的本质

char类型本质上是数字,也就是说在内存中存储的实际上是数字,但是通过与ASCII码表进行对应,可以完成字符->数字输入,数字->字符使用的转换

一段程序帮助你理解char类型的本质:

#include "iostream"
using namespace std;

int main() {
	int ans = 'a';
	cout << ans << endl; 
}

char类型可以存储的数据范围是超出ASCII码表的,但是基于ASCII码表的映射,可以认为char的应用内容就是ASCII码表

九.字符串数据类型

在C++中有两种风格的字符串使用形式:

1.C语言风格:

char str1[] = "myproject"; // 字符数组形式
char *str2 = "test"; // 指针形式

2.C++风格字符串:

string str = "String";

3.字符串的拼接

在C++中经常需要完成多个字符串拼接为一个字符串的操作,如果我们想要拼接字符串,只需要进行+操作进行连接即可

#include "iostream"
using namespace std;

int main() {
	string str1 = "Hello";
	string str2 = "World";
	string str3 = "Peace";
	string ans = str1 + " " + str2 + " " + str3;
	cout << ans << endl;
}

注意:加号仅适用于字符串和字符串进行拼接,如果想要拼接非字符串,则需要将其转换为字符串才能进行拼接

转换非字符串的方法:使用C++内置的to_string函数将内容转换成字符串类型

十.布尔型数据类型

我们使用布尔类型的数据表达互斥

1.布尔类型的字面量分别为true(本质为1),false(本质为0)

2.布尔类型的应用场景:用于程序中的逻辑判断,通过真或假来决定程序的执行流程

十一.cin数据输入

1.作用:

通过cin我们可以接受数据的输入

2.语法:

cin >> 变量;

3.简单举例:

#include"iostream" 
using namespace std;

int main() {
	int num;
	cin >> num;
	cout << num << endl;
	return 0;
}

4.注意事项:

①:cin会自动识别接受数据的变量类型,完成类型适配

②:使用的符号为>>而不是<<

5.使用cin无法接收中文的解决方式(中文输出为乱码)

使用Clion的注册表修改,取消run.processes.with.pty后,可以同时解决cin和cout无法正确接收中文的问题

具体的操作方式为:

①:按住键盘ctrl + shift + alt + /,然后选择Registry

②:取消勾选run.processes.with.pty

十二.运算符

运算符是一种符号,用于告诉编译器执行特定的数学或逻辑操作

1.C++内置的运算符有:

①:算术运算符:通过指定的符号对程序内的数据进行数学运算(+-*/)

②:赋值运算符:用于将右侧表达式的值赋予左侧的变量(=)

③:比较运算符:用于对两个数据进行比较,最终返回的结果为bool型(><)

④:逻辑运算符:用于对单个或多个表达式进行逻辑判断(&&||!)

⑤:位运算符

⑥:三元运算符:用于对逻辑进行判断,根据判断结果提供不同的值

2.语法:

条件判断语句 ? 值1 : 值2;

3.含义:

如果?之前的表达式结果为true,那么就提供值1,反之提供值2

4.举例:

#include"iostream" 
using namespace std;

int main() {
	int num1 = 100, num2 = 200;
	// 若num1大于num2,则输出num1,反之输出num2 
	int ans = num1 > num2 ? num1 : num2;
	cout << ans << endl; 
}

等等

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

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

相关文章

报表控件stimulsoft操作:使用 Angular 应用程序的报告查看器组件

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…

【网络编程】WSAAsyncSelect 模型

十、基于I/O模型的网络开发 接着上次的博客继续分享&#xff1a;select模型 10.8 异步选择模型WSAAsyncSelect 10.8.1 基本概念 WSAAsyncSelect模型是Windows socket的一个异步I/O 模型&#xff0c;利用这个模型&#xff0c;应用程序 可在一个套接字上接收以Windows 消息为基…

从0开始的操作系统手搓教程43——实现一个简单的shell

目录 添加 read 系统调用&#xff0c;获取键盘输入 :sys_read putchar和clear 上班&#xff1a;实现一个简单的shell 测试上电 我们下面来实现一个简单的shell 添加 read 系统调用&#xff0c;获取键盘输入 :sys_read /* Read count bytes from the file pointed to by fi…

鸿蒙应用开发—数据持久化之SQLite

文章目录 SQLite简介创建数据库添加数据查询数据更新数据删除数据升级数据库使用事务参考 SQLite简介 SQLite是一个轻量级关系数据库&#xff0c;占用资源很少&#xff0c;只有几百KB的大小&#xff0c;无需服务器支撑&#xff0c;是一个零配置、事务性的SQL数据库引擎。 相对…

应急响应--流量分析

&#xff08;一&#xff09;Cobalt Strike流量特征分析 1.HTTP特征 源码特征&#xff1a; 在流量中&#xff0c;通过http协议的url路径&#xff0c;在checksum8解密算法计算后&#xff0c;32位的后门得到的结果是92&#xff0c;64位的后门得到的结果是93&#xff0c;该特征符…

初始化E9环境,安装Sqlserver数据库

title: 初始化E9环境,安装Sqlserver数据库 date: 2025-03-10 19:27:19 tags: E9SqlServer初始化E9环境,安装Sqlserver数据库 安装E9本地环境安装Sql server 数据库1、检查SQL Server服务是否开启2、检查SQL Server网络网络配置是否开启创建一个ecology数据库点击初始化数据库…

自然语言处理:无监督朴素贝叶斯模型

介绍 大家好&#xff0c;博主又来和大家分享自然语言处理领域的知识了&#xff0c;今天给大家介绍的是无监督朴素贝叶斯模型。 在自然语言处理这个充满挑战又极具魅力的领域&#xff0c;如何从海量的文本数据中挖掘有价值的信息&#xff0c;一直是研究者们不断探索的课题。无…

API调试工具的无解困境:白名单、动态IP与平台设计问题

引言 你是否曾经在开发中遇到过这样的尴尬情形&#xff1a;你打开了平台的API调试工具&#xff0c;准备一番操作&#xff0c;结果却发现根本无法连接到平台&#xff1f;别急&#xff0c;问题出在调试工具本身。今天我们要吐槽的就是那些神奇的开放平台API调试工具&#xff0c;…

VSCode 2025最新前端开发必备插件推荐汇总(提效指南)

&#x1f31f;前言: 如果你是一名前端开发工程师&#xff0c;合适的开发工具能大大提高工作效率。Visual Studio Code (VSCode) 凭借其轻量级、高扩展性的特点&#xff0c;已成为众多前端开发者在win系电脑的首选IDE。 名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。—…

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参&#xff1a;在触发事件时&#xff0c;将一些数据作为参数传递给事件处理函数的过程&#xff0c;就是事件传参&#xff1b; 在微信小程序中&#xff0c;我们经常会在组件上添加一些自定义数据&#xff0c;然后在事件处理函数中获取这些自定义数据&#xff0c;从而完成…

初阶数据结构(C语言实现)——4.2队列

目录 2.队列2.1队列的概念及结构2.2队列的实现2.2.1 初始化队列2.2.2 销毁队列2.2.3 队尾入队列2.2.4 队头出队列2.2.5获取队列头部元素2.2.6 获取队列队尾元素2.2.7获取队列中有效元素个数2.2.8 检测队列是否为空&#xff0c;如果为空返回非零结果&#xff0c;如果非空返回0 3…

linux 命令 cat

cat 是 Linux 中用于查看、创建和合并文件的常用命令&#xff0c;全称 concatenate&#xff08;连接&#xff09;。其核心功能是将文件内容输出到终端或重定向到其他文件/命令中。以下是详细用法及场景示例&#xff1a; 基本语法 cat [选项] [文件1] [文件2] ... 选项…

TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”

近日&#xff0c;由万向区块链实验室与HashKey Group联合推出的Web3年度盛典——2025香港Web3嘉年华正式宣布&#xff0c;TON基金会确认成为本届嘉年华的冠名赞助商&#xff0c;并将于4月8日在主会场特别举办“TON生态日”专题Side Event&#xff0c;集中展现TON生态的最新技术…

【Java代码审计 | 第七篇】文件上传漏洞成因及防范

未经许可&#xff0c;不得转载。 文章目录 文件上传漏洞漏洞成因未验证文件类型和扩展名未限制文件上传路径 防范验证文件类型和扩展名验证文件内容限制文件上传路径使用安全的文件上传库 标准代码 文件上传漏洞 文件上传漏洞是指攻击者通过上传恶意文件&#xff08;如可执行脚…

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)

效果一览 代码获取私信博主基于麻雀搜索算法&#xff08;SSA&#xff09;的无人机路径规划&#xff08;Matlab&#xff09; 一、算法背景与核心思想 麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种受麻雀群体觅食行为启发的元启发式算法&#xff0…

狮子座大数据分析(python爬虫版)

十二星座爱情性格 - 星座屋 首先找到一个星座网站&#xff0c;作为基础内容&#xff0c;来获取信息 网页爬取与信息提取 我们首先利用爬虫技术&#xff08;如 Python 中的 requests 与 BeautifulSoup 库&#xff09;获取页面内容。该页面&#xff08;xzw.com/astro/leo/&…

DeepSeek教我写词典爬虫获取单词的音标和拼写

Python在爬虫领域展现出了卓越的功能性&#xff0c;不仅能够高效地抓取目标数据&#xff0c;还能便捷地将数据存储至本地。在众多Python爬虫应用中&#xff0c;词典数据的爬取尤为常见。接下来&#xff0c;我们将以dict.cn为例&#xff0c;详细演示如何编写一个用于爬取词典数据…

AI智能导航站HTML5自适应源码帝国cms7.5模板

源码名称&#xff1a;AI导航站HTML5自适应源码帝国cms7.5模板 开发环境&#xff1a;帝国cms 7.5 安装环境&#xff1a;phpmysql var code "4d33ef8e-9e38-43b9-b37b-38f75944ecc9" 带软件采集&#xff0c;可以挂着自动采集发布&#xff0c;无需人工操作&#xff0…

【贪心算法】将数组和减半的最小操作数

1.题目解析 2208. 将数组和减半的最少操作次数 - 力扣&#xff08;LeetCode&#xff09; 2.讲解算法原理 使用当前数组中最大的数将它减半&#xff0c;&#xff0c;直到数组和减小到一半为止&#xff0c;从而快速达到目的 重点是找到最大数&#xff0c;可以采用大根堆快速达到…

Apache XTable:在数据湖仓一体中推进数据互作性

Apache XTable 通过以多种开放表格式提供对数据的访问&#xff0c;在增强互作性方面迈出了一大步。移动数据很困难&#xff0c;在过去&#xff0c;这意味着在为数据湖仓一体选择开放表格式时&#xff0c;您被锁定在该选择中。一个令人兴奋的项目当在数据堆栈的这一层引入互作性…