【C语言】为什么要分数据类型?强类型与弱类型语言。

# 几乎不存在任何理论知识,谁都能看懂

学任何编程语言,最反逻辑的一定是数据类型,因为在自然语言中我们不会刻意区分,那么为什么编程需要区分数据类型呢,简单来说就是为了优化内存,让内存能存储尽可能多的东西

不讲内存本身的构造,我就用类比的手法:

假设内存是书架,各种各样的数据是书,假如我们这一排只放1000页以上的书,及非常占字节的数据,可能只能放3本,而剩余一点点的空间不能放任何东西了,但假如我们去计算一下书的宽度,我们就可以配合着薄一点的书放,这样一排能放5或6本,可能还会有空间剩余,但一定比3本厚书浪费的少了很多。

整理书籍正是内存存储变量的一个宏观解释,像浮点数,整型,字符(串),它们本身之间区别很大,就像厚书与薄书的区别,我们也就是通过这个依据,去分类出数据类型的,那么可能有人会有疑问,为什么整型1和整型23占用的是一样多的字节呢?这是因为计算机存储的形式是按照二进制存储的,在我们看来,23比1要长,但在计算机看来,1是这个样子的:0000 0001。而23是这个样子的:0001 0111。二者区别就在这里,这也就有了后续的long int类型和short int类型。

现在用一个实例看看

int x = 99

int代表了这个数据要占多少字节,x代表了这个数据实际存储在内存的哪个地方。这就是强类型语言与弱类型语言的本质区别:强类型语言在存储变量时首先要声明数据类型,可以理解为告诉计算机我这个数据要占多少字节,然后是命名,而弱类型语言,不需要这些,只需要名称

x = 99

那么就有疑问了,这么做不会导致内存混乱吗,的确是,但弱类型语言有它自己的手段来尽可能避免,而且弱类型语言的优点完全可以盖过让内存混乱这个缺点,下面先说说手段:

1.自动内存管理:大多数弱类型语言都有内置的垃圾回收机制。垃圾回收器负责自动管理内存分配和释放,确保程序不会因为动态类型转换而导致内存混乱或泄漏。

2.运行时类型检查:弱类型语言通常会在运行时进行类型检查。如果某种类型操作不合法,解释器会抛出异常。

这两点能最大化避免出现内存混乱的问题,下面再说说优点:

1.提高开发效率

x = 99

x = 'hello'

#我们可以非常轻易修改数据到任何其他类型

2.适应动态数据处理:Web开发、数据分析、脚本编写等领域常常需要处理类型不固定的数据,弱类型语言能够更方便操作。

总的来说,数据类型的出现是为了更好地利用内存,而强类型与弱类型语言则因为存储数据的方式不同,所以适应不同的工作,谁也不能替代谁。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值