概述
/* 数据类型长度(字节)数值范围
int 4(32 bits) -2147483648 ~ 2147483647 (-2^31~(2^31-1))
short int2 (16 bits) -32768 ~ 32767 (-2^15~(2^15-1))
long int 4 (32 bits) -2147483648 ~ 2147483647
unsigned int 4 (32 bits) 0 ~ 4294967295 (0~(2^32-1))
unsigned short int2 (16 bits) 0 ~ 65535(0~(2^16-1))
unsigned long int 4 (32 bits) 0 ~ 4294967295 (0~(2^32-1))
char 1 (8 bits) -128 ~ 127(-2^7~(2^7-1))
flcat 4 (32 bits) 1.2e-38 ~ 3.4e38
double 8 (64 bits) 2.2e-308 ~ 1.8e308
*/
补码:
由于计算机不能执行减法,所以采用补码将二进制反转,然后相加,则得出减法的操作,这就是补码的作用。
溢出:
上面的表有写出每种数据类型的最大值与最小值,我们不要超出了范围,数据溢出后不会报错,而是像汽车里程表那样,到达最大值后,又从最小值开始计数。因此我们需要时刻注意所定义变量的最大取值范围,一定不要超过这个范围进行赋值。
C++有六种数据类型:布尔型(bool)、字符型(char)、双字符型(wchar_t)、整型(int)、单精度浮点型(float)、双精度浮点型(double)。
在进行细分的话:
整型又可分为无符号型、长整型、短整型。
双精度型包括 双精度型 和 长双精度型。
除此之外还有静态变量(static)、外部变量(extern)、寄存器变量和自动存储变量。
假如从广义上来划分C++的数据类型的话,我们可以将其仅仅分为两大类——常量(值不可改变)与变量(值可改变)。
我们从常量与变量的角度来介绍以上六种数据类型。
布尔型 bool:
布尔型可以表示两个逻辑值,1和0,即真或者假。
#include<iostream>
using namespace std;
int main()
{
bool check;
check = true;//由于在C++中true(真)用来代表1,false(假)用来代表0,所以也可以这么赋值
if (check == 1)//假如if()括号中 为真 则执行下面括号中的功能
{
cout << "欢迎来到玫瑰坊!" << endl;
}
return 0;
}
字符型 char :
字符型变量存放的是字符,这个字符指的是计算机字符集中的字符(ASCII码)。字符型变量只占一个字节,我们知道一个字符为8位(二进制的8位),而最大的8位二进制数为:11111111 (8),换算成十进制为255,因此字符型变量可存储256个字节,而一个字符可解释为0~255之间的一个数或某个ASCII码。
字符中的 “” 反斜杠改变了其后字母的含义,因此他又叫转义字符。
所有的特殊字符 :
a铃声(警报声)
b回退
f换页
n换行
r回车
tTab键
v垂直制表
'单引号
"双引号
?问号
\反斜杠
00八进制
xhh十六进制
#include<iostream>
using namespace std;
int main()
{
char ch;//定义了一个字符型变量,它的名字为ch,系统为该变量分配一个字节的空间,并将空间的地址赋给变量名ch。
ch = 'A';//将大写字母A存储到变量名ch所代表的地址中。注:字符中单引号' '
cout << ch << endl;
cout << (int)ch<<endl;//如果想看ASCII码,强制转换为 int 型()中代表强制转换的类型。
for (int i = 32; i<128; i++)
{
cout << (char)i;//这时可以看到所有字符
}
cout << "nn欢迎来到";
char zh = 't';//作用与按下Tab键相同,特殊字符的用途。
cout << zh << "玫瑰坊!";
return 0;
}
双字节类型 wchar_t:
我们知道char型变量可存储一个字节的字符,它用来保存英文字符与标点符号是可以的,但是存储汉字、韩文、日文却不可以,因为汉字、韩文都占据了两个字节,为了解决这个问题,C++又提供了 wchar_t 类型,也就是双字节类型,又叫宽字符类型。
#include<iostream>
#include<locale>//setlocale函数实在头文件<locale>中定义,所以添加头文件
using namespace std;
int main()
{//"chs"代表中文的意思,LC_ALL代表设置所有选项
setlocale(LC_ALL, "chs");//由于“中”是汉字,所以调用一个函数来将本机的语言设置为中文简体
wchar_t wt[]=L"中";//【 】表示这是数组型变量,L 告诉编译器为“中”分配两个字节的空间。
wcout << wt << endl;//使用wcout替代cout来输出快字符。
return 0;
}
整型 int :
整型变量有很多种,最基本的是 int
#include<iostream>
#include<locale>//setlocale函数实在头文件<locale>中定义,所以添加头文件
using namespace std;
int main()
{
//short int a; //定义变量 a 是为了告诉编译器为 a 分配4个字节的空间,short关键字短整型
//short a; //一般情况下可以简写,短整型只占用 2个字节
//long b; //long int b;此处简写。长整型占用 4个字节
//int 与 long 都是占用4个字节,区别为:long类型的数所占的内存空间为4个字节,在16位系统里是 2个字节 ,在32位系统中是 4个字节。int类型的长度并不是固定的,它和系统平台有关系。
cout << "int:"<<sizeof(int)<<endl;//可以用关键字sizeof来测试一下字节问题
cout << "long:" << sizeof(long) << endl;
cout << "short:" << sizeof(short) << endl;//有符号短整型可以表示正整数与负整数
//按照符号来区分一下整型变量,可分为无符号与有符号型。区别:
unsigned short a;//关键字unsigned 无符号 短整型
unsigned long b;//无符号长整型
cout << "unsigned long" << sizeof(unsigned long) << endl;
cout << "unsigned short:" << sizeof(unsigned short) << endl;
return 0;
//有符号可以表示负整数,而无符号只能表示正整数,同时由于有符号整型的最高位要用于表示符号位,因此取值范围要比无符号小一倍。
}
浮点型 float :
#include<iostream>
#include<iomanip>//设置精度的头文件
using namespace std;
int main()
{
float a = 12.3456789012345;//只输出了6位数,第6位是经过四舍五入的结果
cout << "a:" <<setprecision(15)<< a << endl;//设置精度
//setprecision()函数括号中代表设定小数的长度,即使不够,也要拼够,但精确数字保持在6~7位
double b = 12.123456789012;//双精度,占中8个字节,比float多占了一倍,精度也大了一倍,即:15~16位精准
cout << "b:" << setprecision(15) << b << endl;
//double精度虽然高,但是占内存多,运行速度慢,所以能用float就不要用double
return 0;
}
常量:
顾名思义,其值是不能改变的,可以对常量初始化,但是此后你就不能再对其进行赋值。
int main()
{
const double PI = 3.1415926;//此时 PI 的值就不能再变了//const 关键字——常量
return 0;
}
枚举型:
#include<iostream>
using namespace std;
int main()
{
//关键字 enum 将其后的num声明为枚举型,然后我们为num定义了5个值:01234
enum num {zero,one,two,three,four};
//枚举型的第一个常量值默认为0,其他依次增加。
//enum num {zero=100,one,two,three=200,four};
//这时zero为100,则one自动为101,two为102...three=200,则four=201...
return 0;
}
最后
以上就是轻松海燕为你收集整理的数据类型与枚举型的全部内容,希望文章能够帮你解决数据类型与枚举型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复