C++语言教程(详解,会更新)——第5篇:多种多样的C++类型

本文深入讲解C++中的各种数据类型,包括整型、实型、布尔型、字符型及用户自定义类型。详细介绍了每种类型的特点、范围及使用场景,并通过代码示例帮助读者理解。

对于本系列声明

版权声明

copyright 2019 XyloZebra 原创,请勿抄袭!
转发请注明原贴位置
悄悄地告诉你:这名字分为Xylo和Zebra,是我真名的首字母组成的单词!

系列内容声明

  • 这个系列适合想学C++的菜鸟或略懂一些的人,大佬请绕路而行。
  • 这个系列基本涵盖所有C++基础知识。
  • 参考文献:《零基础学C++》吉林大学出版社
                      百度百科

系列文章链接

正文

Hello,大家好
上篇文章我讲了关于C++变量的知识。
定义变量需要:

[类型] [标识符];

这篇文章我们就学习一下C++类型的知识。

整型

整型类型是一个大家庭,有很多描述整型数字(就是整数)的类型。

类型范围描述
[signed] int-2147483648-2147483647整型
unsigned [int]0-4294967295无符号整型
[signed] short [int]-32768-32767短整型
unsigned short [int]0-65535无符号短整型
[signed] long [int]-2147483648-2147483647长整型
unsigned long [int]0-4294967295无符号长整型
[signed] long long [int]-9223372036854775808-9223372036854775807超长整型
unsigned long long [int]0-18446744073709551615无符号超长整型

如果一个类型存储的数据超出范围(学名叫溢出),就会又从范围中最小的数记起。如:

int outtaRange_num=2147483648;

此时outtaRange_num的值溢出,所以又从最小记起,是-2147483648。

相信大家一看到“无符号”就晕了吧!这是一个术语。观察一下,所有无符号整型类型的范围,其实无符号只表示正整数和零。

PS:中括号中的都可以省略。

实型

类型范围有效位数描述
float3.4 X 10^-38 - 3.4 X 10^386~7单精度实型
double1.7 X 10^-308 - 1.7 X 10^30815~16双精度实型
long double-1.2 X 10^-4932 - 1.2 X 10^493218~19长双精度实型

注意:实型类型中没有无符号的。

布尔型

布尔型bool用于描述真或假两种状态:

bool t=true;
bool f=false;

字符型

一般来说,字符型有两种:

[signed] char //-128-127
unsigned char //0-255

为什么要存储字符的类型存储的却是整型数字呢?
这要从ASCII码说起:在这里插入图片描述
ASCII字符表将字符表示为0-127的整型数字,而charunsigned char刚好可以表示。如下:

char A='A'; //char A=65;

用户自定义类型

之后会讲到,我们可以自己定义类型供使用,也可以用C++自带库里头的类型。

string类就是一个例子。
非自定义的类型我们称之为“基本数据类型”。

编程挑战

请声明一个char,赋值一个字符。
再声明一个long,将char复制赋值给这个long。
再用cout输出流输出这两个变量,用逗号,分隔。
提示:字符要放在两个单引号'中间,如:

'C'

写代码(cpp shell)

代码示例

char实现

#include <iostream>

using namespace std;

int main()
{
	char c='s';
	int c_int=c;
	cout<<c<<','<<c_int<<endl;
	//注意,你不能将在两个双引号中的字符串赋值给char或unsigned char
	//不能:char a="a";
	return 0;
}

unsigned char实现

#include <iostream>

using namespace std;

int main()
{
	unsigned char c='s';
	int c_int=c;
	cout<<c<<','<<c_int<<endl;
	//注意,你不能将在两个双引号中的字符串赋值给char或unsigned char
	//不能:unsigned char a="a";
	return 0;
}

预习&作业

下一节:基本数据类型之间的转换
预习:隐式转换和显式转换

作业:将本节课所有学到的类型都定义一个变量,cout输出看看。(除了string和用户自定义变量)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值