【C语言】数据类型

举报
謓泽 发表于 2023/09/03 20:38:25 2023/09/03
【摘要】 本篇文章我们要讲述的是数据类型的知识点,那么到底什么是数据类型呢。其实我们可以把"数据类型"这四个字拆开两段来。

💤 data type  

        本篇文章我们要讲述的是数据类型的知识点,那么到底什么是数据类型呢。其实我们可以把"数据类型"这四个字拆开两段来。

        ①"数据"实际上就是代指的是字面意思,最直观的像数字它就是数据、我们所打字的二十六个字母它也是数据。当然数据有很多这里就不一一列举了,不过各位小伙伴们可以在评论区底下告诉我哟🙈

        ②"类型"实际上类型就是数据不同的类型了。在博主的理解就是数据和类型就是一体的属于是共生关系。没有数据就没有类型,同样的没有类型就没有数据。类型就好比一个垃圾分类站一样,里面是有不同的类型的。

💤 数据类型

        在上述所讲解的数据类型是博主所认为的一个理解,接下来就正式的开始讲解下,也算是官方话的角度讲解下数据类型了。

  • 声明不同类型的变量或者函数的一个广泛的系统。
  • 变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
  • 计算机是通过二进制(0和1)进行数据存储的。例如⇨二进制数据"0100 0001"既可以表示十进制的数据65,也可以表示字符'A'。因此在程序设计的过程当中需要一个明确每一个的数据的具体类型,这样才可以展开运算。
  • 由于声明不同类型的变量或函数的一个广泛的系统,变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

💤 常用的数据类型

        下面博主就来带大家介绍以下几种常用的数据类型。

  1. char           字符数据类型              C语言表示用字符用 ' '(单引号),%c所对应的是打印字符格式的数据。
  2. short          短整型数据类型          也可以写成 short int,短整形所占的存储空间大小可能比int小,常用于较小的值节省空间。
  3. int               整形                            %d所对应的是打印整形十进制(0~9)的数据
  4. long           长整形                         也可以写成 long int, 长整型所占的存储空间大小可能比int多,常用于较大的数值值场合。
  5. long long   更长的整形                 也可以写成 long long int,存储空间可能比long多,适用于更大的数值场合。
  6. float           单精度浮点型              建议%f所对应的是打印单精度浮点数格式的数据,打印后面的小数点位数少点。
  7. double       双精度浮点型              建议%lf所对印的是打印双精度浮点数格式的数据,打印后面的小数点位数多点。

💤 字符类型

        假设我们要去存储一个字符,首先大写字母'A'和小写字母'a'的字符是不一样的,这两个字符代表了不同的字符。

        那么接下来我们用C语言来演示下如何在代码当中存储字符。如下Code所示👇

#include<stdio.h>
int main(void)
{
	char ch = 'a';
	printf("%c",ch);
	
	return 0; 
}

        🙌运行结果:a

        接下来我们聊聊关于字符类型的另一方面的知识点。

        ①字符(char)类型用于储存字符,像字母或标点符号。但是有一点是新手初学者小伙伴很难意识到的,当我们从技术层面看char实际上是整数类型

        ②因为字符(char)类型实际上储存的是整数而不是字符。计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。 

        例如~在ASCII码当中的话,整数数字65代表大写字母A。因此的话,储存字母A实际上储存的是整数类型65的数字。

         如下Code所示👇

#include<stdio.h>
int main(void)
{
	char ch = 'A';
	printf("%d",ch);
	
	return 0; 
}

        🙌运行结果:65

💤 整形类型

        在C语言代码中既然存在字符类型,那也一定会存在整形类型。在整形类型分为三种类型,一种是短整型、另一种是整形、还有一种是长整形。此时就有小伙伴们害怕了,啊😶‍🌫️怎么一个整形还有三种表现形式,謓泽謓泽,那会不会很难啊。实际上并不会,因为它们本质上都是整形类型,就是我们数学学的整数,只不过它们的数字的长度不一样而已。可以从名字便可以知道。

长整形(long int)  8字节
短整形(short int) 2字节
整形  (int)       4字节

        说明🥰①个字节相当于⑧比特位。如果你要知道它的数据类型是长度是多少,方法很简单只需要计算2^比特位即可。

        注意😶‍🌫️在这里计算时候是要分 unsigned 无符号类型 和 signed 有符号类型的。

💤 浮点类型

         浮点类型说直白点就是带有小数的就被称之为是浮点型,总共有分为两种类型。

1.单精度浮点类型(float)
2.双精度浮点类型(double)

        ①浮点数与数学中实数的概念差不多。2.75、3.16E7、7.00 和 2e-8 都是浮点数。注意在一个值后面加上一个小数点,该值就成为一个浮点值。 

        ②这里先做简要介绍3.16E7表示3.16×10的7次方。

        ③这里关键要理解浮点数和整数的储存方案不同。计算机把浮点数分成小 数部分和指数部分来表示,而且分开储存这两部分。因此,虽然7.00和7在数值上相同,但是它们的储存方式不同。在十进制下,可以把7.0写成0.7E1。这里0.7是小数部分,1是指数部分。演示了一个储存浮点数的例子。当然,计算机在内部使用二进制和2的幂进行储存,而不是10的幂。

💤 两种类型区别

  1. float类型也被称之为单精度浮点型,它的作用是可以打印带有浮点数的数字。
  2. double类型也被称之为双精度浮点型,它的作用是可以打印带有浮点数的数字。
  3. 同样的这两个类型虽说都可以打印出小数,但是它们的区别还是有的,存储的大小数值的范围包括精度的有效位double类型都要大于float的类型

        说明🥰接下来我们就来演示以下关于浮点类型代码编写如下Code所示👇

#include<stdio.h>
int main(void)
{
	double a = 3.14159;
	printf("打印:%lf\n",a);
	printf("打印小数点后两位:%.2lf\n",a);
	 
	return 0; 
}

        🙌运行结果:打印 3.1415926 ('\n') 打印小数点后两位:3.14

        说明🥰怎么样发现不同之处了没有,当你在%后面加个.那么你想数字保留几位的小数它就可以保留几位小数了。

💤 sizeof

        sizeof是C语言当中的关键字,也是C语言当中的操作符。作用是计算类型也就是数据类型或者变量所占的空间大小。下面来介绍下它的语法。

sizeof(类型)
sizeof 表达式
  • 返回 类型的对象表示的字节大小。
  • 返回 表达式类型的对象表示的字节大小,不应用隐式转换到表达式当中。

💤 数据类型字节大小


        当你看到这里的时候,相信你对上面博主所讲述的内容有一个大致的了解了。那么接下来你已经对上面的内容有一个大致的了解了,接下来博主就带你如何敲打一个关于数据类型字节大小的一个代码,如下Code所示👇

#include<stdio.h>
int main(void)
{
	printf("char         字节:%d\n",sizeof(char)); 
	printf("short        字节:%d\n",sizeof(short));
	printf("int          字节:%d\n",sizeof(int));
	printf("long int     字节:%d\n",sizeof(long int));
	printf("long long int字节:%d\n",sizeof(long long int));
	printf("float        字节:%d\n",sizeof(float));
	printf("double       字节:%d\n",sizeof(double));
	 
	return 0; 
}

        🙌运行结果:由于字数比较多,博主就直接截图了。

        注意😶‍🌫️Vs2022版本的编译器是%zu的格式的。

💤 字节

        计算机中的单位bit 比特位1bit 存放一个二进制位1或者0二进制数字。

        那么在bit上面的就是字节(byte),1byte = 8bit位,kb = 1024byte,mb = 1024kb,gb = 1024mb,tb = 1024gb,pb = 1024tb。

💤 ASCll码表

        这里先放一张关于ASCll码表给初学者或者刚接触C语言小伙伴们看看,后面的系列会告诉大家关于什么是ASCll码表的。

💤 END

        这篇关于C语言的数据类型的博客就到这里了,如果觉得对你有帮助的话别忘了三连支持一下。这也是博主重新整顿修改的第二篇文章了,博主之后也会不定时间修改完善其它博客内容。最后,感谢大家一路以来的支持💕

        当然对于本篇文章所讲述的东西,可以去C语言关键字当中去看,因为像这些关键字的数据类型在博主的这些系列都是有的。并且讲解的非常详细,感兴趣的小伙伴们可以去看看,相信你会有所收获的哟。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。