《实用C++》第5课:C++的数据类型与常量

本文转载自:VC驿站

https://www.cctry.com/thread-277142-1-1.html

1、C++的各种数据类型:
《实用C++》第5课:C++的数据类型与常量 

有的网友会问,为什么有这么多的数据类型,烦不烦啊?那我要问你了,你家做饭就用一个盆吗?
是不是有个大盆,中盘,小盆?勺子呢?有大勺,中勺,小勺,露眼勺 等等,刀呢,是不是有切肉的,还有切菜的,还有切水果的?
数据类型也是一样,不同的数据类型有不同的作用。

整型呢,一般用来表示整数,没有小数点的,浮点型一般用来表示有多位小数点的数,字符型呢,一般表示一个一个的字符,比如字母 a,b,c 之类的。
有的网友会问,简单来说,整型和浮点型能不能统一都用浮点型,比如:5.0 就表示整数5,也是可以的。他们占用的空间不一样,那我问你,你在家用饭盆吃饭么?能不能吃,肯定能吃,但是太大了,不方便啊,你喝水呢,用水桶喝水吗?能不能喝,能喝,但是不方便。所以,还是本着什么东西该用到什么地方就用到什么地方,不能乱用,不然不是这不合适,就是那不合适。

类型呢,又可分为 有符号的 和 无符号的,有符号的可以表示负数,无符号的只能表示正数。但是无符号的最大正数会比有符号的最大正数大很多。


2、各种类型所占用的空间大小:即,桶的大小
必须得知道各个“桶”的大小之后,才能决定用哪个来“喝水”,对吧?不然太大浪费,太小了又不够用。
《实用C++》第5课:C++的数据类型与常量 

举个栗子:比如说中国有13亿人口,用来表示人口数的变量类型你怎么选?用 short 或者 unsigned short 可以吗?其最大表示的正整数才是65535,也就是 6万 多人,跟13亿差太远了。。。如果用 unsigned int 呢,其最大值是 4294967295,也就是 42亿多,用来表示中国 13 亿人口足够了。但是全球的世界人口呢?

在人口统计学中,世界人口是目前全球的总人数。 世界人口估计在2017年4月24日16时21分(UTC)达到75亿人。 联合国估计,在2100年将进一步增加到112亿。
75亿,112亿,那么现有的 unsigned int 类型又表示不下了,unsigned int 类型占用 4个 字节,所以得找能占用 8个字节的整型才行。上面的那个表没有,再给大家看一个表:
《实用C++》第5课:C++的数据类型与常量 

用什么类型啊?unsigned long long 占用8个字节,这回足够用了,其最大值是:18446744073709551615,这个数确实是太大了。。。184万万亿!这回表示全球人口够用了吧!可如果你用 unsigned long long 来表示一个班级中所有学生的数目,那就有点太浪费了。一个班级中所有学生的数量不会超过几百人吧,用个 unsigned short 足够用了,还节省空间。所以说大家以后做编码开发的时候要根据自己的实际情况来选择。

3、空间大小的衡量标准:
我上面说的类型占用几个字节啊什么的,大家可能没个标准也不太好衡量。下面我给大家介绍一个单位:
就目前来说大家可能比较熟悉的单位就是:MB、GB、TB 可能大家比较熟悉了。说今天我买了一块 2TB 的硬盘。昨天我买了一块240G的固态硬盘,我电脑的内存是8G,等等。
存储单位主要有以下这么多:B,KB,MB,GB,TB,EB,ZB,YB,BB
他们之间都是1024倍的关系:
1B   = 8bit(比特)
1KB = 1024B(字节)
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

有个了这个比较,大家大体上应该知道字节单位的大小了吧!一首MP3音乐文件的大小大概在 3~4MB的样子,一个普通的高清电影一般在1~2GB的样子。

使用重点:要兼顾扩展性与占用空间两方面的需求。小了不够用,容易溢出越界,大了呢既占用空间,又不利于网络传输!
举个例子:有符号的 char 能表示的范围是:-128~+127,你说这个体积小,就占用一个字节,我就用它来表示人的年龄吧,127,但是你不感觉这个数字有点悬吗?真就有某位长寿星,年龄超过127也不是不可能啊,所以一味的为了节省空间,而选择占用小的类型也不是明智之举,容易越界溢出。所以用个 short 来表示还是比较不错的,取值范围既够用,占用空间也才 2 个字节。另外,年龄不可能是负数,所以直接用 unsigned short 就可以了。

4、C++中的常量:
常量的分类:
①、数值常量:整型、浮点型;
整型:5,6 之类的;
浮点型:1.3, 2.6 等等,就是带小数点的;

②、字符常量:普通字符常量、转义字符常量、字符串常量;
普通字符常量:'a','d'等
转义字符常量:
《实用C++》第5课:C++的数据类型与常量 

字符串常量:"zhangsan"

③、符号常量:宏定义:#define PRICE 30

5、常量示例代码:
#include <iostream>
using namespace std;

//苹果的价格是5块钱一斤
#include <iostream>
using namespace std;

#define Apple_Price 5

int main()
{
        cout << "Hello World." << endl;
        cout << "张三 要去买苹果啦..." << endl;

        int num = 10; //10斤
        int total_money = num * Apple_Price;
        cout << "张三要买 " << num << " 斤苹果,每斤 " << Apple_Price << " 块钱,总共要付:\n" << total_money << " 元" << endl;

        return 0;
}

6、小作业:
自己编写代码实现输出单引号和双引号!

第5课免费试看,下载地址(回复后可见):

https://www.cctry.com/thread-277142-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值