专栏首页我的知识小屋C++入门指南及实战 第三步 基本变量

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++教程持续更新中,欢迎点赞、收藏、关注。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【C语言简单说】三:整数变量扩展和输出扩展(3)

    我想大家应该都知道int a=1是啥意思吧?好了,那么在在这里我想说的,就是大家要知道以下,int a=1;中,a是我们的变量名称,这个名称是可以自己取名的,但...

    公众号 碧油鸡
  • 【C语言简单说】三:整数变量和输出扩展(1)

    注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。

    公众号 碧油鸡
  • 【C语言简单说】四:常量

    常量和变量是一种相对的概念,在这里我开始跟大家说说常量和变量的区别。可能前几节的小伙伴们并没有能感受出来,不过有了常量的对比那么将会有很好的理解。

    公众号 碧油鸡
  • 手写一个简单的JVM--02.模拟运行JVM

    虚拟机栈是栈帧的集合的统称,栈帧是虚拟机执行时方法调用和方法执行时的数据结构,它是虚拟栈数据区的组成元素,每一个方法对应了一个栈帧。

    付威
  • 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]

      泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能。基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用。同时,它减少了泛型类及...

    aehyok
  • golang——为什么有的语言要把变量类型写在后面?

    Golang当中的变量类型和C/C++比较接近,一般用的比较多的也就是int,float和字符串。Golang当中不一样的地方主要有几点,第一点是严格区分了in...

    TechFlow-承志
  • Open GL ES(2.绘制三角形)

    接下来我们将尝试使用OpenGLES绘制一个三角形,首先创建一个Android Studio Project,OpenGLESTriangles 接下来我们来学...

    小海编码日记
  • LeetCode130. 被围绕的区域

     bfs题,主函数中枚举每一个起点,如果是'O'就开始bfs搜索,首先将'O'变为'X',然后将周围是'O'都入队。这里有个地方要注意,如果'O'并不是被...

    mathor
  • new ScalarHandler()-->返回值为long,不能用int接收!!!

    qr.query()返回object类型 ,先转成 ScalarHandler的Long类型 然后 在转为 int类型,之前我直接就转成int类型所以就GG了呱...

  • 编写高性能的Java代码需要注意的4个问题

    ThreadLocalMap使用ThreadLocal的弱引用作为key,如果一个ThreadLocal没有外部强引用来引用它,那么系统 GC 的时候,这个Th...

    宜信技术学院

扫码关注云+社区

领取腾讯云代金券