c++第六课 c++语言常用类型

本文是c++教程的第六课,详细介绍了c++中常用的数据类型,包括数字类型如long long、float、double等,字符类型如char和string,以及逻辑型bool。文章通过实例解释了各种类型的特点和使用场景,帮助初学者理解不同数据类型的范围和用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++教程总目录

第一课:c++第一课 输出“Hello word”
第二课:c++第二课 输出自定义字符图形
第三课:c++第三课 关于代码的一些知识
第四课:c++第四课 定义int型变量、变量赋值与输出
第五课:c++第五课 输入
第六课:c++第六课 c++语言常用类型
第七课:c++第七课 加法算数运算
第八课:c++第八课 运算原理
未完待续……

c++第六课 c++语言常用类型

上节课我们学习了int型变量的输入,可以写出一个简单的人机互动界面。这节课我们学习一下不同类型,制作出更有意思的小程序。
在c++语言中,有好多种类型。我们学习的int型是最基本的变量类型,也是最常用的类型之一,所以请先学好int型哦!

数字类型

int型用来定义数字变量,长度是有限制的。
先不聊c++,说点别的。
生活中我们经常用到计算器,初中生应该很喜欢用。但是计算器也有一点不太好,就是算不了太大的数。比如算一个:99999999999999999999999999999999999999999999999999乘上
99999999999999999999999999999999999999999999999999
结果会是:
错误
这是因为计算器最高位溢出造成的。比如一个变量只能存个位数,你非要算个9+1,你说计算器怎么办?只能告诉你:错误。
好了,回到c++。
int型变量的范围是-2147483648~2147483647
也就是说,在一个加法运算程序中,你不能让两个变量加起来大于2147483647或小于-2147483647。如果超出这个范围,根据我的经验,会输出2147483647。
当然,你输出的也有可能不是这个值,可能是个定值,就是说每次运行这个程序输出的这个乱值可能都是一样的;也可能是变化的,每次运行的值不一样。
那就有人说了:这哪行啊?不够我使的!
所以有几种更长的类型:long long、long long ing、unsigned long long
现在就来介绍一下。

1.long long长整型

long long的数据范围:
-9223372036854775807~9223372036854775807
嗯,挺大的。
不过不算太大,比如要写一个计算最大的素数(有没有我不知道)的程序,这么点也就刚够做做热身运动。
对于普通的程序来讲,这些足够了。
定义变量的方式与ing型完全一样:

long long 变量1,变量2,变量n……;

自己可以试试输入。

2.long long int长整型

这个类型与long long类似,有些编译器会编译不通过。
它与long long有什么区别我不知道,希望有人知道告诉我,用起来与long long没啥区别。

3.unsigned long long无符号长整型

什么叫无符号?
这个问题在我刚开始学的时候一直搞不清楚。
关于这个问题,写个算式解决:
1+1=2
其中的符号有两个“+”,一个“=”(每个“1”各一个,第一个“1”省略)
再写一个long long的负数数据范围:
-9223372036854775807
其中的符号是“-”。
那无符号就是:
9223372036854775807
刚才那个小学一年级算式就是:
112
没错吧?
但是这明明是把long long型砍掉一半,所以另一半也不能闲着,那就加到正数的范围上来吧!
所以unsigned long long的数据范围是:
9223372036854775807*2+1=18446744073709551615
加一是因为中间有个0。

同样道理,unsigned int的数据范围是:
2147483648*2+1=4294967297

注意,没有unsigned long long int型!

short短整型

鉴于刚才的学习,就不废话了。
数据类型:-32768~32767
读者:这么少的类型鬼才用!谁这么闲得慌!
的确,这种类型很少用。但有一部分程序很喜欢这个类型。关于这个以后再介绍,我们现在用不到它。

float 单精度浮点型

浮点型,也就是带浮点的数,那带浮点的数不就是小数嘛!
你会发现,前面的数据类型都没法存小数,要是需要求个圆周率,你这程序就不够看了,所以,我们来学习一下浮点型。
定义方式都相同,就不废话了。
你看,之前的类型都是有数据范围的,float也不例外,它的数据范围分为指数部分和尾数部分。这里主要看一下尾数部分。
float小数点后可以存7位有效数据,如果超出这个范围float则四舍五入处理。
关于整数部分,不能存太大的数,比short大点,比int少很多。具体多少我不知道,知道的大神告诉我!
如果整数部分超过范围,就会用科学计数法表示。
看一下下面的程序:

#include<iostream>
using namespace std;
int main()
{
	float a=3.1415926535;
	cout<<a<<endl;
	return 0;
}

输出结果:
在这里插入图片描述
再输入一个大点的数:
在这里插入图片描述

double双精度浮点型

这种类型可以存储16位尾数,整数部分也比float大。
比赛时建议都用double型,保险。

long double C99新增:多精度浮点型

传统c++里没有这个,在C99里加上的。这种类型没有给出确切的数据范围,它的范围取决使用的编译器。
不过我们可以通过以下程序得知它的数据范围:

#include<iostream>
using namespace std;
int main()
{
	cout<<sizeof(long double);
	return 0;
}

你不用管什么意思,编译运行,看看结果:
在这里插入图片描述
我用的这个编译器定义的long double类型的长度是12字节。12字节是说整数部分的字节数加上尾数部分的字节数一共12字节。一字节等于8位,那么12字节就是12*8=96位。
不过我们不知道它的整数或尾数部分到底是几位。

关于数字类型就到这里,定义方式都是一样的!

字符类型

先给大家看一段程序:

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	cout<<a<<endl;
	return 0;
}

编译运行,输入“abc”
你会发现它什么也不输出,或者输出0
这是因为输入的是字符。
我们定义的是int型,属于数字类型,字母不是数字,所以a变量里什么也不是。

1.char字符类型

char类型是一个最基本的字符类型。定义方式和数字类型相同:

char 变量1,变量2,变量n……;

比如这样:

#include<iostream>
using namespace std;
int main()
{
	char a;
	cin>>a;
	cout<<a<<endl;
	return 0;
}

输入“a”,看看运行结果:
在这里插入图片描述
现在输入“abc”,再看看运行结果:
在这里插入图片描述
为什么只输出“a”呢?明明输入的是“abc”啊!
因为字符类型变量“a”只能存储一个字符。多个字符的情况下,只能存储第一个字符。
注意,char类型无法存储汉字!
接着输入,输入“1”,运行结果如下:
在这里插入图片描述
但你输入“123”,它只能输出“1”
这里的“1”不是数字“1”,而是字符“1”,数字“1”和字符“1”是不一样的!关于哪不一样我们以后再讲,否则会乱套。

2.string字符串类型

字符串,就是由字符穿起来的“串”。要是你非常热爱字符串,说不定下次吃烧烤时会说:老板,给我来两串字符串!
为解决上面没法输入“abc”的情况,我们开始学习字符串。string类型的定义方式与上面各类型相同:

string 变量1,变量2,变量n……;

你会发现“string”不是一个关键字。但这并不意味着变量可以叫做string。要是看不明白,看下面一行代码:

int string;//错误

这是不行的!

好了,看下面的代码:

#include<iostream>
using namespace std;
int main()
{
	string a;
	cin>>a;
	cout<<a<<endl;
	return 0;
}

编译运行,输入“abc”。
在这里插入图片描述
再运行,输入“武汉加油!中国加油!”
在这里插入图片描述
所以string类型可以输入汉字。

逻辑型

bool布尔类型

bool类型是用来判断真或假的。0时为假,否则为真。
这个在比赛中不常用,因为int性变量也可以胜任这一工作。在开发项目中会用到,可以使程序清晰易懂。
看个例程:

#include<iostream>
using namespace std;
int main()
{
	bool a=true,b=false;
	cout<<a<<' '<<b<<endl;
	return 0;
}

运行结果:
在这里插入图片描述
也可以这样写:

#include<iostream>
using namespace std;
int main()
{
	int a=1,b=0;
	cout<<a<<' '<<b<<endl;
	return 0;
}

或者这样:

#include<iostream>
using namespace std;
int main()
{
	int a=true,b=false;
	cout<<a<<' '<<b<<endl;
	return 0;
}

都行。
关于bool类型我们以后再说!

由于作者水平有限,文章中难免有误,请大神们给出指正!
上一课:c++第五课 输入
下一课:c++第七课 算数运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值