【C++程序员必修课】C++基础课程-03:数据类型

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编程),定期会分享一些技术开发经验、行业资讯、业界动态等。期待您的关注,一起交流学习进步。

#下载示例源码和开发工具,请进入公众号首页,点击(发消息)最下方的(资源下载)菜单即可获取。

喜欢本文章,记得点赞、分享、关注哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天恩软件工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值