1 本课主要内容:
- 为什么需要有各种不同的数据类型?
- C++数据类型和变量类型
2 主要知识点:
-
编程的本质
编程的本质是要解决生活、工作等方方面面的实际问题,不同的场景需要用不同的数据类型来表示;如果要表示一个人是否买了房子,在程序里面需要使用布尔类型(bool),就是 true 是,false 否,也可以叫 真 和 假;如果要表示一个人的年龄,可以使用整数类型(short 或者 int 等);表示用户名称就需要字符串类型(std::string 或者 char*)来表示;用户在银行里面的存款,因为有小数点,编程里面用浮点数类型(float 和 double)来表示;等等等等;
-
数据类型的取值范围
不同的数据类型会有不同的取值范围,以及对应在计算机里面占用的存储空间,这些下面会详细介绍:
-
布尔型
布尔型:bool,有 true(是|真)、false(否|假);例子如下:
bool isAllowed{false};
-
字符型
字符型:[unsigned ]char, wchar_t;例子如下:
char c{'A'}; // 字符
const char* s{"ABCD"}; // 字符串
-
整型
整型:[unsigned]short, [unsigned ]int, [unsigned] long, [unsigned] long long;例子如下:
int age{23};
-
浮点型
浮点型:float, double;例子如下:
float number1{1.2};
double number2{2.0};
-
无类型
无类型:void;void 主要用于函数没有返回,以及无类型指针;如下例子:
void set_value(int newValue) {
this->m_value = newValue;
}
// 无类型指针,可以指向任意的类型,用于强制转换;
void * anyAddress = nullptr;
-
更多类型
更多类型:枚举类型(enum),字符串(std::string),结构体(struct),类(class),指针(type*),内置数组(type[])等
3 C++ 数据类型、变量类型列表
变量 | 类型 | 占用字节 | 取值范围 | 备注 |
bool | 布尔型 | 1字节8位 | true 表示为真 false 表示为假 | |
[signed] char | 有符号字符 | 1字节8位 | -128 到 127 | |
unsigned char | 无符号字符 | 1字节8位 | 0 到 255 | |
[signed] short | 有符号整数 | 2字节16位 | -32768 到 32767 | |
unsigned short | 无符号整数 | 2字节16位 | 0 到 65535 | |
[signed] int | 有符号整数 | 4字节32位 | -2147483648 到 2147483647 | |
unsigned int | 无符号整数 | 4字节32位 | 0 到 4294967295 | |
[signed] long | 有符号整数 | 4字节32位(32位编译器) 8字节64位(64位编译器) | - | 不推荐使用 |
unsigned long | 无符号整数 | 4字节32位(32位编译器) 8字节64位(64位编译器) | - | 不推荐使用 |
[signed] long long | 有符号长整数 | 8字节64位 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | |
[unsigned] long long | 无符号长整数 | 8字节64位 | 0 到 18,446,744,073,709,551,615 | |
float | 单精度浮点数 | 4字节32位 | +/- 3.4e +/- 38 (~7 个数字) | |
double | 双精度浮点数 | 8字节64位 | +/- 1.7e +/- 308 (~15 个数字) | |
wchar_t | 宽字符 | 2字节或4字节 | - | |
void | 无类型 | 1字节8位 | - | |
type * | 指针型 | 4字节32位(32位编译器) 8字节64位(64位编译器) | - |
4 课后练习:
- 练习1:用 sizeof(type) 函数计算上面列表,所有的变量类型的占用字节数,并打印出屏幕上;
// 打印sozeof(type)字节大小例子
std::cout << "sizeof(char) : " << sizeof(char) << std::endl;
- 练习2:思考一下身边的事物或物体,至少列出十种以上,分别需要用到什么数据类型?如名称、地址使用字符串,高度使用浮点数或整数等;
const char* name{""}; // 名称
const char* address{""}; // 地址
int height{0}; // 高度
附录:在线视频课程
进入视频号学习本文配套视频课程。
-【End】-
哈喽,大家好!我是喜欢coding的小二,一枚“靓仔又不掉头发”的C++开发大头兵;欢迎围观公众号(20YC编程),定期会分享一些技术开发经验、行业资讯、业界动态等。期待您的关注,一起交流学习进步。
#下载示例源码和开发工具,请进入公众号首页,点击(发消息)最下方的(资源下载)菜单即可获取。
喜欢本文章,记得点赞、分享、关注哦~