脚本宝典收集整理的这篇文章主要介绍了C++入门教程(19):数据类型,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/vide...
前言
经过前面的学习和练习,相信你已经更加了解计算机和C++的关系。本部分教程将详细讲解基本数据类型、一些常用的数据类型的使用和再详细讲解循环语句等基础内容。
本部分教程的目的:
- 详细讲解之前用过的基础知识,让你在使用过程中尽量避免遇到BUG和尽可能优化代码。
- 讲解其他非常常用的数据类型。
在学习之前,再解释几个名词:
类
类是可以自定义的数据类型的统称,C++标准库中有很多类,而我们也可以通过类来制定出方便自己使用的数据类型。后续教程中如果出现类的话,我将会明确指出它是类。
至于如何制定出一个类,这个将在后续教程中讲解。
对象
用类声明定义出来的变量叫做对象。
实例化
用类声明定义出对象的这个行为也叫做实例化,也可以叫做创建对象,不过本教程多数也是用声明这个词。
关键字
像int
等,在C++语言中有特定作用的单词。关键字是不能用作变量名称等的标识符。
编译期
编译的时候。
运行时
程序运行的时候。一些可以在编译的时候得出结果的代码,编译器一般都会尽量在编译的时候优化掉,这样编译出来的程序由于执行的代码更少,所以运行的时候会更快。
我们知道在使用变量前需要用数据类型声明出变量才能使用,前面已经讲解过非常常用的基本数据类型,现在将详细讲解基本数据类型和常用的其他数据类型。
数据类型
在声明定义变量时,必须指定数据类型,来说明变量保存的类型和变量占用多大的内存。
基本数据类型属于C++的核心语言,其他的数据类型都是根据这些衍生出来的。以下是基本数据类型(占用内存和取值范围是基于VS2017和GCC7.3的,感谢FirstLove指出问题):
类型
类型简写
用途
占用内存(字节数)
取值范围
bool
bool
只有两个值(例如性别)
1
false, true
unsigned char
unsigned char
保存字节数据
1
[0, 255]
signed char
char
保存窄字符或UTF-8字符
1
[-128, 127]
wchar_t
wchar_t
保存宽字符字符
2(Windows)或 4(Linux/OS X)
[-32768, 32767](Windows)或[-2147483648, 2147483647](Linux/OS X)
char16_t
char16_t
保存UCS-2字符
2
[0, 65535]
char32_t
char32_t
保存UCS-4字符
4
[0, 4294967295]
signed int
int
保存整数
2(16位系统)或 4(32位系统)
[-32768, 32767](16位系统)或[-2147483648, 2147483647](32位系统)
unsigned int
unsigned int
保存非负整数
2(16位系统)或 4(32位系统)
[0, 65535](16位系统)或[0, 4294967295](32位系统)
signed short int
short
保存整数
2
[-32768, 32767]
unsigned short int
unsigned short
保存非负整数
2
[0, 65535]
signed long int
long
保存整数
4(GCC32位/VS)或 8(GCC64位)
[-2147483648, 2147483647](GCC32位/VS)或 [-9223372036854775808, 9223372036854775807](GCC64位)
unsigned long int
unsigned long
保存非负整数
4(GCC32位/VS)或 8(GCC64位)
[0, 4294967295](GCC32位/VS)或 [0, 18446744073709551615](GCC64位)
signed long long int
long long
保存整数
8
[-9223372036854775808, 9223372036854775807]
unsigned long long int
unsigned long long
保存非负整数
8
[0, 18446744073709551615]
float
float
保存小数
4
6位左右的有效数字
double
double
保存小数
8
16位左右的有效数字
long double
long double
保存小数
8(VS)或 12(GCC32位)或 16(GCC64位)
这个情况太多就不考证了,转载请注明出处“小古银的C++教程”
指针
指针
保存内存地址
2(16位系统)或 4(32位系统)或 8(64位系统)
[0x0000, 0xFFFF](16位系统)或 [0x00000000, 0xFFFFFFFF](32位系统)或 [0x0000000000000000, 0xFFFFFFFFFFFFFFFF](64位系统)
@H_380_304@
其中,指针是用来保存地址的特殊数据类型。虽然指针不是基本数据类型,但也是很常用的类型,所以也放到这部分一起讲解。
注意:
- 以上基本数据类型的占用大小是一般情况下,事实上,根据编译器的不同,基本数据类型的占用大小也不一定都是固定的。
- 使用基本数据类型的时候,一般使用简写。
- 保存整数时,由于没有比
unsigned long long
更大的基本数据类型,所以如果你要保存的数字大于unsigned long long
可以保存的最大值,你需要另外想办法解决。
其他常用的数据类型:
-
std::string
、std::wstring
、std::u16string
、std::u32string
用于保存字符串,这些类型在string
库中。
-
std::size_t
用于保存长度,这个类型在cstddef
库中。
类型后缀
0
默认是int
类型。但是有不少的时候,如果我们想这个0
是unsigned int
类型。那么,这种情况就可以使用类型后缀,说明这个字面量是指定类型的。例如:unsigned int zero = 0u;
、unsigned long long two = 2ull;
。
类型后缀有以下这些:
类型
后缀
bool
无后缀
unsigned char
无后缀
char/wchar_t/char16_t/char32_t
无后缀
int
无后缀
short
无后缀
long
l 或 L
unsigned int
u 或 U
unsigned short
无后缀
unsigned long
ul 或 UL
long long
ll 或 LL
unsigned long long
ull 或 ULL
float
f 或 F
double
无后缀
long double
l 或 L
拓展知识
固定大小的数据类型(了解即可)
如果需要固定数据占用大小,则需要使用以下数据类型,这些数据类型都在cstdint
库中:
- 固定8位长度:
int8_t
和uint8_t
。
- 固定16位长度:
int16_t
和uint16_t
。
- 固定32位长度:
int32_t
和uint32_t
。
- 固定64位长度:
int64_t
和uint64_t
。
注意:只有当编译器支持这些类型的时候,这些类型才会被定义;当你使用了这些类型但是编译器不支持,编译的时候将会报错。
补充知识(了解即可)
- 基本数据类型中,
char16_t
、char32_t
、unsigned long long
、long long
是C++11增加的。
- 后缀
ull
/ULL
是C++11增加的。
以上是脚本宝典为你收集整理的C++入门教程(19):数据类型全部内容,希望文章能够帮你解决C++入门教程(19):数据类型所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。