一般来说,无论是想要转行成为C++开发工程师,还是合格的C++开发工程师,都需要了解和数据C++基础知识。接下来小编带你一起了解下C++变量类型:
深入了解C++变量类型有哪些
什么是变量? 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。
在计算机程序语言中,变量指的是为程序中的数据提供的内存空间的名称。也就是说只要你在程序中创建了一个变量,不管后面有没有使用到,编译系统就都会自动的在内存中开辟出一个空间用来存放你需要保存的值,而变量就是我们给这个空间所起的名字。如下我们创建一个变量取名num,赋值为10。
intnum=10;
变量在程序中如何使用? 程序中声明变量:
格式一:数据类型变量名1,变量名2,变量名3,……;
格式二:数据类型变量名=值;
intnum1,num2,num3;//声明变量num1num2num3 intnum=10;//声明变量num,并赋值为10
复制代码类型:[cpp] 变量创建后实际发生了什么? 变量被创建出来之后,不管会不会使用,其实都是在内存中开辟出一块对应的空间。这个空间的大小根据不同的数据类型而不同。变量的名字作为这个空间的名字,这个变量的值被保存在这个空间内。
变量类型有哪些? C++中的基本数据类型有:整数类型、浮点类型、字符类型、布尔类型。
一、整数类型(分为有符号和无符号两种):整数类型保存的是一些整数,例如:-1-2-30123……,但是由于数值的大小范围,又将整数类型分为以下几种。
1、整型类型:int。
Int类型共占4字节,32个比特位。从左往右第一位为符号位,0代表正数、1代表负数。所以int表示的数据范围是:-(2^31)—(2^31)-1,即-2147483648—2147483647。
2、短整型类型:short。
short类型共占2字节,16个比特位。从左往右第一位为符号位,0代表正数、1代表负数。所以short表示的数据范围是:-(2^15)—(2^15)-1,即-32768—32767。
3、长整型类型:long。
编译系统为32位时,long类型和int类型相同;编译系统为16位或64位时,则不相同。一般认为,long>=int
4、长长整型类型:longlong。
Longlong类型共占8字节,64个比特位。从左往右第一位为符号位,0代表正数、1代表负数。所以longlong表示的数据范围是:-(2^63)—(2^63)-1。
二、浮点类型:浮点类型保存的是小数。浮点类型分为三类:单精度浮点类型float、双精度浮点类型double、长精度浮点类型longdouble
1、单精度浮点类型:float
float占位4字节,共32个比特位。其中1位为符号位(0代表正数、1代表负数),8位为指数位,23位为尾数位。
Float取值范围:-3.4028234661038—3.4028234661038
8位指数可以表示-128到127
有效数字最大是全1,近似乘2
所以整个数的最大值是2乘以2^127,约等于3.4乘10^38
Float精度范围
23位尾数位,2^23=8388608,共7位数,所以float的精度范围在6-7位小数,6位为绝对精确。
2、双精度浮点类型:double
double占位8字节,共64个比特位。其中1位为符号位(0代表正数、1代表负数),11位为指数位,52位为尾数位。
double取值范围:-1.7976931348623158*10308—1.7976931348623158*10308
11位指数可以表示-1024到1023
有效数字最大是全1,近似乘2
所以整个数的最大值是2乘以2^1023,约等于1.7976931348623158*10308
doublet精度范围
52位尾数位,2^52共16位数,所以double的精度范围在15-16位小数,15位为绝对精确。
3、长精度浮点类型:long double
Long double占位12字节,共96个比特位
Long double取值范围:-1.2E4932—1.2E4932
Long double的精度范围在19-20位小数,19位为绝对精确。
三、字符类型:char(char类型也分为有符号和无符号之分):字符类型保存的就是一些字母、数字、字符等符号。每一个字符占用1字节,共8个比特位。因为保存的是一些字母等符号,所以在计算机内存中仍然是以整数值的形式保存,即以ASCII码形式保存。
同理,从左往右第一位为符号位(0代表正数、1代表负数)所以取值范围为:-2^7—2^7-1。
提到字符类型,还有一点需要注意:“转义字符”:是为了进行某些特殊格式的控制。
四、布尔类型:bool。布尔类型是一种表示逻辑的数据类型,只有两个值:
true表示真、false表示假;
对应数值为:true代表1、false代表0;
#include<iostream>
using namespace std;
int main(){
bool flag = true; //声明变量flag并赋值为true
bool flag1 = false; //声明变量flag1并赋值为false
return 0;
}