C++入门指南及实战 第三步 基本变量

在C++编程中,内置了一些基本数据类型用来存储一些不同类型的值。有字符类型 char 用以存储字符,如a、b、c、d、-、=、1、2、4、3、>、?等;有整形 int 用以存储整数类型,如1、2、3、4、5、11、111、2311等;有浮点类型 float,用以存储浮点数 1.23、1.1、2.31、3.412等;有布尔类型用以存储布尔值,如 Ture、False。
以上介绍并不完全的介绍完C++中的类型,还有许多并未列出,只列出了一部分的常用类型。
在C++中当内置的类型不能满足开发需求时,也可以自定义,自己创建一个类型。

变量

变量指在编程中用来存储值的容器。变量必须使用一个类型进行描述,表示该变量属于什么类型。如有一个变量 a,在c++中整形是用int表示,那么使用整形对变量a进行描述则可以写为:int a

整形

以上的简介中,已知整形是使用int表示,在整形中还分为短整形、长整形以及整形。短整型、长整形、整形的区别是在于他们之间的存储空间①。短整型是16位②,长整形与整形的存储空间就是32为位。(编译器版本不一样准寻的标准不一致,当下我使用的是gcc 4.9.2)首先查看如何新建一个整形变量,并且赋予一个值:

注解: 一些概念了解即可,对于初学者并不是需要刚开始就能完全理解①内存空间指数据存储位置的空间,抽象概念②位指的是二进制位,二进制10占2位置称为2位,111占3个位置则称为3位,16位则表示可比表示为 1111 1111 1111 1111 ,指最大可存储数字

#include<iostream>
using namespace std;int main(){int a=10;return 0;
}

以上代码中,整体框架跟上一节内容一致,主要查看amin入口内花括号中所写的的代码

 int a=10;

以上代码使用 int 表述 变量a,并且用个等于号 把 10这个整数值给予 a 变量。
描述一个变量只需要在这个变量前使用一个类型的关键字,随后一个空格与变量名隔开,变量进行值的存储需要一个等于号,等于号表示把等于号右边的值 10 装进a这个变量容器之中,随后一个分号表示结束。这样就完成了一个变量的值的创建于复制。

接下来可以使用cout 进行输出变量,上一节中,使用cout 输出字符是 count<<"HelloWorld";,输出字符串需要使用双引号引起来,但是变量不需要,直接写成如下代码示例即可cout<<a;

#include<iostream>
using namespace std;int main(){int a=10;cout<<a;return 0;
}

结果如下:
在这里插入图片描述
注意,以上代码是有逻辑顺序的,先定义变量a,并且赋值后才可以输出,如果没有定义变量a,就直接输出是不行的,以下是错误的方式:

#include<iostream>
using namespace std;int main(){cout<<a;int a=10;return 0;
}

结果会报错:
在这里插入图片描述
刚刚说到,使用short int 短整型,存储空间只能存16位,我们可以使用计算机自带的计算机查看一下 1111 1111 1111 1111 转换成十进制的数位多少,步骤如下:
打开计算器选择查看,点击程序员
在这里插入图片描述

输入16个1,随后点击十进制查看值为多少在这里插入图片描述
在这里插入图片描述
值为65535,这个时候把变量a所存储的10更改为65535:

#include<iostream>
using namespace std;int main(){short int a=65535;cout<<a;return 0;
}

结果如下:
在这里插入图片描述
此时应该存储的值为最大存储值,应该装满了,不能网上装了,这时我们把65535改为65536:

short int a=65536;

这时数据将会溢出结果如下:

在这里插入图片描述
现在我们把存储数据再一次进行更改:

short int a=65538;

这时数据溢出的值多了2,这时运行代码得到的值为:
在这里插入图片描述
因为数据溢出就像时钟一样,绕了一圈又从起始开始。

有无符号

在C++ 中,整数类型还分为有符号和无符号两种,符号可以理解为符号- 与正号+ ,描述使用的关键字是 有符号 signed 与 无符号 unsigned。用来描述以上示例的整形可以写为:

signed short int a=65538;

修改以上示例:

#include<iostream>
using namespace std;int main(){signed short int a=-65538;cout<<a;return 0;
}

运行结果如下:
在这里插入图片描述
当我们使用无符号进行对象的描述:

#include<iostream>
using namespace std;int main(){unsigned short int a=-65538;cout<<a;return 0;
}

结果如下:

在这里插入图片描述
由于不接受负数带符号的显示,65535为短整型,65536为0,那么就会显示出65534。由于编译器遵循的标准不一致会出现不同的情况,按照读者自己 的演示结果为标准。整型相关内容不再继续详讲,有机会将会在此篇列出不同标准执行的不同结果。示例想让读者明白的是存储空间有大小限制,需要在开发时注意这个会触发bug的知识点。

字符

相信有了以上的知识,在这一节内容中,大家将会很快的学会字符变量的定义。
字符类型修饰符为 char,后面接变量名,写为 char a,随后等于号,并且用单引号表示字符 char a='c';,完整示例如下:

#include<iostream>
using namespace std;int main(){char a='c';cout<<a;return 0;
}

结果如下:
在这里插入图片描述
在此注意,单个的符号数字才叫字符,组合成的为字符串。如果你写成了多个字符组合,那么只取最后一个字符为字符变量的值,并且字符变量值只能用单引号表示(一定是英文输入法的标点符号):

#include<iostream>
using namespace std;int main(){char a='ce2112d';cout<<a;return 0;
}

结果如下:
在这里插入图片描述

浮点

浮点类型使用float关键字进行修饰,float a=1.41表示定义了一个浮点类型的变量a,值为1.41:

#include<iostream>
using namespace std;int main(){float a=1.41;cout<<a;return 0;
}

结果如下:
在这里插入图片描述
浮点数分为单精度 float 与 双精度浮点double,区别在于精度,在此并不做过多讲解。

c++教程持续更新中,欢迎点赞、收藏、关注。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OPCServer Modbus使用和配置

一&#xff0c;安装KEPware.Enhanced.OPC.DDE.KEPServer。(PLC数据传送给KEPServer,开发的程序用OPCServer读KEPServer) 设置ip地址后面是指的plc站号&#xff0c;此处必须和plc上站号对应。否则无法接收数据。 打开quick client 查看传值情况 二.C#程序代码 引用opcdaauto.dll…

C# 创建命名管道服务器

通过创建 NamedPipeServerStream 的一个新实例&#xff0c;来创建服务器。NamedPipeServerStream 派生自基类 PipeStream&#xff0c;PipeStream 派生自 Stream 基类&#xff0c;因此可以使用流的所有功能&#xff0c;例如&#xff0c;可以创建CryptoStream 或 GZipStream&…

在香蕉派 Banana Pi BPI-M1上使用 开源 OxOffice Impress

2019独角兽企业重金招聘Python工程师标准>>> 在香蕉派 Banana Pi BPI-M1上使用 开源 OxOffice Impress 在Banana Pi BPI-M1上使用OxOffice Impress&#xff0c;該簡報大小約26MB&#xff0c;採用自動播放機制。 OxOffice提供 arm linux的版本&#xff0c;可佈署在ar…

免杀新姿势:利用线程将恶意代码注入到内存中

本文讲的是免杀新姿势&#xff1a;利用线程将恶意代码注入到内存中&#xff0c;产生存放远程攻击线程的进程在这篇文章中我不想一步一步解释我编写的C#代码&#xff0c;但是我会展示下它能够绕过杀毒软件&#xff0c;并且操作非常简单&#xff0c;而且实用。 首先说明一下&…

Java之解决散列表的冲突用开放定址法和链表法

1 问题 理想状态下&#xff0c;散列表就是一个包含关键字的固定大小的数组&#xff0c;通过使用散列函数&#xff0c;将关键字映射到数组的不同位置&#xff0c;哈希函数可以将关键字均匀的分散到数组的不同位置&#xff0c;不会出现两个关键字散列值相同&#xff08;假设关键…

python 手把手教你基于搜索引擎实现文章查重

前言 文章抄袭在互联网中普遍存在&#xff0c;很多博主都收受其烦。近几年随着互联网的发展&#xff0c;抄袭等不道德行为在互联网上愈演愈烈&#xff0c;甚至复制、黏贴后发布标原创屡见不鲜&#xff0c;部分抄袭后的文章甚至标记了一些联系方式从而使读者获取源码等资料。这…

lru算法实现 redis_使用数组与双向链表实现一个简单的LRU算法

什么是LRU算法&#xff1f;redis大家都玩过吧&#xff0c;你们好奇redis内存数据存满之后会发生什么吗&#xff1f;抛出异常&#xff1f;禁止使用&#xff1f;还是删除数据&#xff1f;其实redis设计了一种内润淘汰机制。noeviction(默认策略)&#xff1a;屏蔽写操作&#xff0…

bzoj3224 Tyvj 1728 普通平衡树题解--Treap

题面&#xff1a; Description您需要写一种数据结构&#xff08;可参考题目标题&#xff09;&#xff0c;来维护一些数&#xff0c;其中需要提供以下操作&#xff1a; 1. 插入x数 2. 删除x数(若有多个相同的数&#xff0c;因只删除一个) 3. 查询x数的排名(若有多个相同的数&…

Blazor University (18)使用 RenderFragments 模板化组件 —— 创建 TabControl

原文链接&#xff1a;https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/创建一个 TabControl 组件源代码[1]接下来我们将创建一个 TabControl 组件。这将教您如何实现以下目标&#xff1a;将数据传递到 RenderFragment 以为其…

Java之GC机制

1 JVM基本结构 1&#xff09;类加载器classLoader&#xff1a;在JVM启动时或者类运行时将需要的.class文件加载到内存中 2&#xff09;内存区域&#xff08;运行时数据区&#xff09;&#xff1a; 是在JVM运行的时候操作所分配的内存区 3&#xff09;执行引擎&#xff1a;负…

《零基础看得懂的C语言入门教程 》——(一)脱离学习误区

本节视频连接&#xff1a; https://www.bilibili.com/video/BV1Qv411t7ae 新手C语言学习有些误区你应该知道&#xff0c;这样学习起来事半功倍~一、前言 距离上一次编写C语言的教程是5年前了&#xff08;2015年&#xff09;&#xff0c;由于自己是从初一时开始学习编程&#…

一套完整的导视设计案例_色彩导视艺术:乌克兰基辅语言学校导视设计案例

学校导视设计案例建筑师Emil Dervish为乌克兰基辅Underhub语言学校设计了色彩缤纷的导视系统&#xff0c;该设计灵感来源于伦敦地铁&#xff0c;他希望通过彩色线条的大胆应用来营造轻松而欢乐的氛围。让我们一起来看看这座由“彩虹”做导视的学校。彩虹导视设计跟着红色导视线…

C# 创建匿名管道

下面对匿名管道执行类似的操作。通过匿名管道&#xff0c;创建两个彼此通信的任务。为了给管道的创建发出信号&#xff0c;使用 ManualResetEventSlim 对象&#xff0c;与内存映射文件一样。在 Program 类的 Run 方法中&#xff0c;创建两个任务&#xff0c;调用 Reader 和 Wri…

内测投票

create table DiaoYanTiMu &#xff08;  Ids int(10) auto_increment not null primary key(),//把所需要的都写上中间不需要符号隔开&#xff0c;设自增长列类型必须是int&#xff0c;主键的话必须不能为空not null&#xff0c; Title varchar(50) not null &#xff09;;/…

Mysql 查询统计练习

2019独角兽企业重金招聘Python工程师标准>>> 1、建表 customers 顾客表 products 产品表 orders 订单表 -- 顾客表 CREATE TABLE customers (c_id INT NOT NULL AUTO_INCREMENT,lastname VARCHAR(255),firstname VARCHAR(255),address VARCHAR(255),birthday DATETI…

C++11模版元编程的应用

1.概述 关于C11模板元的基本用法和常用技巧&#xff0c;我在程序员2015年2月B《C11模版元编程》一文&#xff08;后称前文&#xff09;中已经做了详细地介绍&#xff0c;那么C11模版元编程用来解决什么实际问题呢&#xff0c;在实际工程中又该如何应用呢&#xff1f;本文将侧重…

《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程

一、学习目标 了解DevC集成开发环境了解集成开发环境了解HelloWorld程序了解HelloWorld程序的编写方法 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1…

11选5下期算法_本周六周日【高二直播】辅导网课预告:通用技术电控二三极管、多用电表测量、数字逻辑电路、解析枚举递归算法,2022浙江选考技术...

01第19-21讲 2020年11月28日29日开课目录鲸学名师考点精讲系统提高高二共3阶段精品课夯实基础冲刺技术选考97-100分&#xff01;11月28日【高二|提高|直播】高二精品直播课讲授&#xff1a;浙江选考技术科目第19讲 高二综合提高鲸学名师讲授高中通用技术&#xff1a;第19讲 电控…

十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

前言&#xff1a;在linux中&#xff0c;Bash脚本是很基础的知识&#xff0c;大家可能一听脚本感觉很高大上&#xff0c;像小编当初刚开始学一样&#xff0c;感觉会写脚本的都是大神。虽然复杂的脚本是很烧脑&#xff0c;但是&#xff0c;当我们熟练的掌握了其中的用法与技巧&am…

【经典回放】多种语言系列数据结构算法:基数排序

目录 一、算法思路 二、C#语言实现 三、C语言实现 一、算法思路 1. 思想基础 基数排序的思想就是先找出待排序中的最大者&#xff0c;然后按最大者申请一个足够大的内存空间&#xff0c;并将其初始化为零&#xff0c;然后将所有待排序的数装入其中&#xff0c;标记装入的数…