数据类型详解(上)

整型
字符型
浮点型
布尔类型

整型

整型用Int来表示代表一个整数,具体可分为以下内容:

有符号整型无符号整型
signed intusigned int
signed short intusigned short int
signed long intunsigned long int
signed long long intunsigned long longed int

有符号整型表示0和正负数的整型,无符号整型表示0和整数的整型,也就是说:整型前面加上unsigned就无法表示负数了

值得注意的是,如果不添加类型说明符(signed/unsigned),它默认就是signed,所以平常书写无特殊要求时省略signed即可。另外,短整型(short
int)长整型(long int),更长的整型(long long int),也可略写为short,long,long long。

那么这四种整型有什么区别呢?我们可以输入以下代码查看其大小
在这里插入图片描述

我们可以发现不同类型的整型所占大小一般不同(long long是8,忘写了),在c语言中有以下规律:sizeof(short)<=sizeof(int)<=sizeof(long),具体大小由编译器决定。

并且有无字符类型并不影响其大小,合理利用不同类型整型可以减少内存的大小(平常用不到直接用int就行)。

另外图表中的各个类型所能表示的取值范围也不同,我们可以通过查找<limits.h>文件来查看或者输入以下代码在这里插入图片描述

根据图我们可以发现,有符号虽然有能表示负数的优点,但他表示的绝对值却几乎只无符号整型绝对值的一半。由此可知,如果需要处理些比较大的数,那么用无符号整型比较合适。

字符型

字符型char是用来专门存储各类字符的一种类型,字符包括一个字母,数字或者一个特殊符号(注意:字母要用单引号围起来,例如:char A =‘a’),但并不包括汉字,这是因为字符型只能存储一个字节(所有编译器均为1),而一个汉字占两个字节。

另外值得注意的是,几个连起来的数字依然算是一个字符但它所能表达的数字大小有限,但如果数字超出上限它将在它的范围内进行一个循坏。

在这里插入图片描述

字符和整型一样也存在有无符号的区别,但与整型不同的是对于未声明的char类型,它的默认状态由编译器来决定,我们可以输入以下代码来检测

#include<stdio.h>
#include<limits.h>
int main() {
	printf("%d", CHAR_MIN);
	return  0;
}

我们可以看出它最小值为负数(-128),所以我的编译器(vs2019)默认是有符号类型。

浮点型

根据上面所述,整型Int和字符型char并不能表示小数,此时如果我们想表示一个小数就要用到浮点型,浮点型可分为以下几种:

单精度浮点数双精度浮点数多精度浮点类型
字符floatdoublelong double

他们的精度由他们所占据的字节数决定,字节数越多精度越高,如图:

在这里插入图片描述
由此可以得出:在我自己的编译器中double和long double的精准度是相同的。

精准度决定一个数值在一定范围内的准确性,准确度越高这个范围也就越大

在这里插入图片描述y

单精度在处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。

另外要注意的是在输入小数是其默认状态为double,此时代码将无法运行,所以我们要在数字后面加上f(long double后加L),这就相当于在和计算机声明这个数的属性。
在这里插入图片描述
在这里插入图片描述

布尔类型

在计算机中0代表假,非零表示真,在代码中用_Bool/bool表示,例如:

#include<stdbool.h>
int main()
{
	bool a = true;
	if (a)
		printf("真");
	else
		printf("假");
	return 0;
}

与其他类型不同的是bool只有两种形式true(真)false(假),真和假也可以用数字来表示(非0和0)。

若有出错的地方,还望指出,Thanks♪(・ω・)ノ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值