C/C++/C#/Python:数据类型比较

简介: C/C++/C#/Python这四种语言,由低级到高级,代表了计算机编程语言的一个发展流程,前两种编译型语言大家可能比较熟悉,在大学阶段都基本了解过。

C/C++/C#/Python这四种语言,由低级到高级,代表了计算机编程语言的一个发展流程,前两种编译型语言大家可能比较熟悉,在大学阶段都基本了解过。而后两种解释型语言,只有特别专业才会去学习(软件设计、网络服务器),在这里,我们通过对这四种语言进行纵向的比较。先从最简单的数据类型开始,以及相关语法,编译解释环境,相同点简略,重点突出,由浅到深去系统梳理一遍,成为一个比较合格的Polylot programmer。当然因为四种语言涉及到的东西很多,所以只挑经常会使用的东西进行梳理,欢迎大家批评指正。

2017编程语言排行榜

当然,重点学习一门编程语言并且精通是必要的,广而不精是众多程序员的通病,但是在现在社会发展飞快的今天,编程语言也在不断竞争发展,名次变化也时常出现。学会适时掌握一门新的语言去适应新的潮流也是有必要的,其实只要掌握精通一门基本语言,其他的语言的学习难度也会降低,而最后你最终青睐哪种语言,就仁者见仁智者见智了。(编程语言第一名的仍然是java,但相比去年有了下降,一些新兴语言也在不断发展)
这里先不讲述这四种语言的发展,有兴趣的可以先查查百度或者维基百科,自行了解。
以下讲解如果有错误,请大家及时告知,我会修改,谢谢!
(以下程序执行环境分别为:C/C++:Codeblocks、C#:VS、Python:pycharm)

数据类型的区别

数据类型是我们编程时必须了解的内容,不论在处理数据,或者算法,执行命令,都需要数据的参与,而数据类型的了解和掌握则是一系列操作的基础

简单类型:布尔型

简单类型即拥有两个值0和1的类型,一般我们称之为布尔类型,这个类型四种语言中都存在,也是程序流程中用于判断,标记常用的一种类型
1、在C语言中这个类型是在C99标准之后才有,必须包含stdbool.h头文件才可以使用

#include <stdio.h>
#include <stdbool.h>

int main()
{
    printf("The size of bool_type is %d",sizeof(bool));
    return 0;
}

很显然,编译结果为1,因为布尔类型只占一位
或者你可以用枚举类型自己定义一个布尔类型

typedef enum{FALSE,TRUE}Flag;

2、C++语言与C语言类型,布尔类型关键词也为bool,因为C++为C的超集,在C能运行的程序在C++中都可以运行,布尔型C与C++几乎是一样的。
3、C#中布尔类型也叫bool型。
4、Python中因为不需要定义类型,直接赋予Ture或者False就可以

>>>a = True
>>>print(a)
True
>>>print(type(a))
<class 'bool'>

整型家族

1、C语言与C++语言中整型种类类似

类型 范围
char 0-255
unsigned char -128-127
int 0-65535
unsigned int -32768-32767
short int -32768-32767
unsigned short int 0-65535
unsigned long int -2147483648-2147483647
long int 0-4294967295

其中int类型的位数是缺省的,根据编译器的变化而变化,可能为16位也可能为32位,在老式电脑的编译器中或者16位的单片机芯片中可能为16位,现在在大多数的电脑中应该都为4个字节32位。
为了便于满足所有计算机的要求,C与C++提供了一种灵活的标准,就是保证最少长度,是由C语言借鉴来的。
另外,C++相比C又新增了一种类型long long,为8个字节。

int main()
{
    cout<<sizeof(long long)<<endl;
}

显然结果为8
2、C#中为了简化运算,方便数据处理,将数据分为以下几个类型

类型 范围
byte 0-255
sbyte -128-127
ushort 0-65535
short -32768-32767
int -2147483648-2147483647
uint 0-4294967295
long -9,223,372,036,854,775,808-9,223,372,036,854,775,807
ulong 0-18,446,744,073,709,551,615
char 0-65535

C#中对类型名称都进行了简化处理方便开发者的使用,其中uint即C语言中的unsigned int 而在C#关键词都进行了化简(其实在C语言C++中你可以自定义类型关键字,与C#一样也是可以的),与C不同的是char表示一个16位的整型,为Unicode字符。
3、Python中整型依然不用定义,直接赋值即可,不带小数点的赋值就是整型,理论上支持无限大的整数

a = 123123123123123123123
type(a)
<class 'int'>
b = -12323123123123123123123
type(b)
<class 'int'>

浮点型家族

1、C和C++的浮点类型一样分为float、double、long double,其中float只收32位、double只收48位,且不少于float,long double至少和double一样多。至于具体有效位和小数位的多少,可以从C或者C++头文件(float.h或者cfloat)中进行查找。

2、C#中三种浮点类型为float、double、decimal三种类型。
其中 float类型可表示精度为 7 位、在大约 1.5 × 10−45 到 3.4 × 1038 的范围内的值。
double类型可表示精度为 15 位或 16 位、在大约 5.0 × 10−324 到 1.7 × 10308 的范围内的值。
至于decimal类型可以表示具有 28 或 29 个有效数字、从 1.0 × 10-28 到大约 7.9 × 1028 范围内的值。decimal类型是采用四舍六入五考虑的银行家舍入法进行计算的。

3、Python如同之前所说,赋值时带入小数点Python解释器便识别为浮点型(python统一为float)

a = 3.1415926
b = -3.1415926
type(a)
<class 'float'>
type(b)
<class 'float'>
c = 3.12312312312312312
type(c)
<class 'float'>

注意,python不同于其他语言,python语言不需要声明变量,只需要写出即相当于定义,其变量的类型与赋值号右面变量类型相同。

组合类型

1、枚举

枚举类型是编程中常见的类型,C/C++中枚举类型的定义方式为

enum animal{pig, dog, cat};
enum animal{pig = 0, dog = 2};

我们常用的定义方式为:

typedef enum{FALSE, TRUE}Flag;
Flag flag = FALSE;

此处flag为0
而在python中,直接进行枚举编程是不可行的,需要导入相应的库才可以进行类似“枚举”的定义:

>>>from enum import Enum
>>>class Animals(Enum):
   ant = 0
   cat = 1
   dog = 2
>>>Animals = Animals.ant
>>>Animals 
<Animals.ant: 0>
目录
相关文章
|
3天前
|
SQL 存储 数据库
数据聚合大揭秘!Python如何一键整合海量信息,洞察数据背后的秘密?
【7月更文挑战第21天】在数据驱动时代,Python以强大库支持,如Pandas与SQLAlchemy,轻松聚合分析海量信息。Pandas简化数据整合,从CSV文件加载数据,利用`pd.concat()`合并,`groupby()`进行聚合分析,揭示销售趋势。SQLAlchemy则无缝链接数据库,执行SQL查询,汇总复杂数据。Python一键操作,开启数据洞察之旅,无论源数据格式,均能深入挖掘价值。
9 0
|
3天前
|
机器学习/深度学习 数据采集 数据挖掘
数据界的整容大师!Python如何让你的数据‘洗心革面’,焕然一新?
【7月更文挑战第21天】在数据科学领域,Python扮演着数据“整容大师”的角色,通过清洗、重塑与特征工程,将原始数据美化成分析佳品。首先,利用Pandas清洗数据,删除或填充缺失值,清除异常值,如同洁面般净化数据。其次,通过数据重塑与格式化,如按年龄分组统计薪资并优雅展示,赋予数据直观可读性,好比化妆塑形。最后,特征工程创造新维度,如年龄分组,提升数据分析价值,这全过程是对数据价值的深度挖掘和精细打磨。
|
1天前
|
数据采集 Web App开发 存储
Python-数据爬取(爬虫)
【7月更文挑战第24天】
21 7
|
6天前
|
存储 Python 容器
Python基础语法:变量和数据类型详解(整数、浮点数、字符串、布尔值)
变量和数据类型是Python编程的基础,理解这些概念对于编写高效和正确的代码至关重要。通过本文的介绍,希望你能对Python中的变量和常用数据类型有一个清晰的认识,并能够在实际编程中灵活运用这些知识。
|
1天前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
【7月更文挑战第23天】在数据驱动时代,Python通过Matplotlib与Seaborn引领数据可视化新纪元。Matplotlib基础强大,提供广泛绘图选项;Seaborn则简化流程,图表更美观,适合快速可视化。两者结合,轻松应对复杂定制需求,将数据转化为生动故事,支持决策与交流。
13 6
|
1天前
|
数据采集 机器学习/深度学习 算法
Python-数据爬取(爬虫)
【7月更文挑战第23天】
14 5
|
5天前
|
供应链 数据挖掘 数据处理
聚合数据,洞察未来!Python聚合术,解锁数据背后的商业密码!
【7月更文挑战第19天】数据聚合整合分散数据,揭示隐藏模式,助力企业决策。Python的Pandas与NumPy库简化了这一过程,提供高效的数据处理。例如,通过Pandas的groupby和agg函数,可以按产品ID和日期聚合销售数据,计算每日销量和收入。聚合后,企业可洞察产品销售趋势、季节性变化,优化策略,预测需求。Python丰富的资源和活跃社区支持各层次用户进行数据探索。
20 7
|
2天前
|
数据可视化 数据挖掘 Python
逆袭之路!Python数据分析新手如何快速掌握Matplotlib、Seaborn,让数据说话更响亮?
【7月更文挑战第22天】在数据驱动时代,新手掌握Python的Matplotlib与Seaborn可视化技能至关重要。Matplotlib, 基础且灵活, 适合初学者绘制基础图表; Seaborn在其上提供更高级接口, 专注统计图形和美观样式。建议先学Matplotlib掌握核心技能, 再用Seaborn提升图表质量。快速上手Matplotlib需实践, 如绘制折线图。Seaborn特色功能含分布图、关系图、分类数据可视化及高级样式设定。结合两者可实现复杂数据可视化, 先Seaborn后Matplotlib微调。持续实践助你灵活运用工具, 让数据生动呈现, 助力分析与决策。
13 2
|
2天前
|
开发框架 JSON API
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
【7月更文挑战第22天】在Python Web开发中,设计高效的RESTful API涉及选择框架(如Flask或Django)、明确资源及使用HTTP方法(GET, POST, PUT, DELETE)来操作数据。响应格式通常是JSON,错误处理也很重要。示例展示了使用Flask创建图书管理API,包括版本控制、文档化、安全性和性能优化是最佳实践。这样的API使数据交互更顺畅。
17 2
|
4天前
|
数据挖掘 索引 Python
数据聚合新风尚!Python带你领略数据聚合的无限魅力,秒变数据达人!
【7月更文挑战第20天】在数据驱动的世界,Python的Pandas库为数据聚合提供了强大工具。通过分组和统计计算,Pandas的DataFrame使得从海量数据中提取价值变得轻松。例如,聚合销售数据按地区和产品分类,只需简单几行代码即可计算总销量。Pandas不仅支持基本统计函数,还能自定义聚合操作,结合多级索引和其他高级功能,助你成为数据专家。开始使用Pandas,解锁数据的潜在洞察吧!
17 4