C语言有哪些数据类型为什么要区分数据类型,还得类型转换,感觉好麻烦啊
谢邀。
C语言将数据划分为不同的数据类型,是为了在保持较小开销的情况下,尽量精确的记录和计算数据。要知道,C语言程序的宗旨就是“小开销,高效率”。解决问题时,选择合适的数据类型,能够大大提升程序最终的效率。
题主应该是想问C语言有哪些“基础”数据类型吧?毕竟C语言是支持结构体语法的,它允许我们自定义各种数据类型。下面谈谈C语言中的基础数据类型。
整型计算机存储的最小单位是字节(Byte),一个字节通常是8个bit。我们常说的硬盘容量500GB,就是指硬盘能够存储500G字节的数据。
C语言规定char型占一个字节的存储空间,如果是unsignedchar(无符号),则可表示的取值范围是0~255。如果是signedchar(有符号),则取值范围为-128~127。
定义char型变量时不指定unsigned或signed,C语言标准规定这种情况属于implementiondefined,具体char型变量是否有符号取决于使用的编译器。C语言标准的原则是:优先考虑效率,可移植性其次。
所以如果在对应的体系架构上,char型变量有符号时效率最高,则编译器就将其解释为有符号。若char型变量无符号时效率最高,则编译器就将其解释为无符号。
应该没有人故意写出没有移植性的代码,所以建议写C语言代码用到char型变量时,显性的指出其是否有符号。
另外,整型数据类型还有shortint(可简写为short),int,longint(可简写为long),longlongint(可简写为longlong)几种,这些类型也可以加上unsigned或signed表示无符号型或有符号型。
上面几种整数类型与char类型的区别主要在于占用的存储空间不同,但是究竟这几种整型类型占几个字节,C语言标准没有规定,所以在不同架构的计算机中,这几种类型占用的空间可能不同。
例如在大多数32位计算机中,这几种数据类型占用的字节数分别为2,4,4,8。而在大多数64位计算机中,这几种数据类型占用的字节数分别为2,4,8,8。
除了char,其他几种整型类型如果定义时没有写符号,则默认为是有符号的。
浮点型C语言标准规定的浮点型有float,double,longdouble,但是对每种数据类型占用的存储空间却没有规定。
浮点型的实现在不同的平台上的差异性比整型更大。有的处理器自带的有浮点运算单元,称为浮点运算的硬件实现。有的处理器没有,只能用整型运算模拟,这称为浮点运算的软件实现。
我们在C语言编程时应选择最合适的数据类型。例如某个变量的变化范围是0~100,那选择char类型就足够了(无论有没有符号),选择long类型会导致性能下降,原因在我之前的文章里已经解释过。如果某个变量的变化范围可能超过255,那就不能选择char类型了,否则会造成数据溢出,例如
编译并执行这段C语言代码,会得到输出:i=1。C语言程序中的数据溢出,可以借助计算器直观的看出,请看下图:
C语言的数据类型转换C语言中的基本运算,如+-*/%这些算术运算以及><>=<===!=这些比较运算,都需要两边的数据类型一致,如果不一致,会自动转换为一致的类型。例如:
计算sum之前,程序会先把a和b提升为int类型(即所谓的“整形提升”)再相加。
C语言的数据类型自动转换,一般都是转为占用字节数较多的类型,如果有浮点型,则优先转为浮点型。
例如,如果有一边的类型为longdouble,则把另一边也转为longdouble;
否则,如果有一边为double类型,则把另一边也转为double类型;
否则,如果有一边为float,则把另一边也转为float类型;
。。。接着就是整型了,也是依次按照longlong->long->int->short->char的顺序转换类型的。
C语言在赋值时,也会做自动的类型转换,例如:
以上代码会输出“i=3”,i只保留的3.14的整数部分。C语言还有强制类型转换语法,只需要在要转换的数据前加上(要转换的类型),例如:
以上代码会输出“j=1”,溢出的部分被忽略了。
很多C语言初学者看到这些规则通常会很不舒服,觉得这不是在学编程而是在啃法律条文,结果越学越泄气。
是的,C语言并不像一个数学定理那样完美,现实世界里的东西总是不够完美的。但还好啦,C语言程序员已经很幸福了,只要严格遵照C标准来写代码,不要去触碰那些阴暗角落,写出来的代码就有很好的可移植性。
想想那些可怜的JavaScript程序员吧,他们甚至连一个可以遵照的标准都没有,一个浏览器一个样,因而不得不为每一种浏览器的每一个版本分别写不同的代码。
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。
C语言中各种数据类型有什么区别
C语言中各种数据类型的区别
按整数类型:基本的整数类型:int
按符号分:符号的(signed),无符号的(unsigned)
按照数据范围分:短整数(short),长整数(long),长长整数(longlong)
字符类型(char):容纳单个字符的编码;实质上存储的也是整数。
浮点数类型:单精度(float),双精度(double),扩展精度(longdouble)。
布尔类型(bool):只有两个值:true(真)、false(假),常用来表示关系比较、相等比较或逻辑运算的结果。
c语言简单数据类型哪三种
C语言的三种基本数据类型为整型、实型、字符型。
整型。包括short、int、long等,用以表示一个整数,默认为有符号型,配合unsigned关键字,可以表示为无符号型。
实型,即浮点型。包括float,double等,用来表示实数,相对于整型。
字符型,即char型。用来表示各种字符,与ascii码表一一对应。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的`功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
最新的C语言标准是C18。
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
c语言的数据类型是
C语言包含的数据类型short、int、long、char、float、double的六种基本数据类型。
1、c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发,C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。C语言编译器普遍存在于各种不同的操作系统中,其设计也影响了Java、Python等编程语言。
2、C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的语言,C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。
3、C语言提供了3种处理数据的基本结构,顺序结构是3种基本结构中最简单的一种,在此结构中,算法的步骤是按先后顺序依次执行,选择结构也称分支结构,即根据给定的条件进行判断,由判断结构选择决定执行两个分支中的某一个分支,循环结构又称重复结构,即当某一条件满足或不满足时,一直执行某些操作的算法。
c语言主要数据类型
C语言包含的数据类型short、int、long、char、float、double的六种基本数据类型。
1、c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发,C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。C语言编译器普遍存在于各种不同的操作系统中,其设计也影响了Java、Python等编程语言。
2、C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的语言,C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。
3、C语言提供了3种处理数据的基本结构,顺序结构是3种基本结构中最简单的一种,在此结构中,算法的步骤是按先后顺序依次执行,选择结构也称分支结构,即根据给定的条件进行判断,由判断结构选择决定执行两个分支中的某一个分支,循环结构又称重复结构,即当某一条件满足或不满足时,一直执行某些操作的算法。
C语言中有哪些数据类型
c语言语言组成编辑c语言基本构成数据类型C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型