C语言中的datatype是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中的datatype是啥相关的知识,希望对你有一定的参考价值。
datatype是数据类型。C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
数据类型关键字:
1、short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
2、long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
3、long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
4、signed:修饰整型数据,有符号数据类型。(C89标准新增)
5、unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)
6、restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)
扩展资料
转换:
在算术运算和关系运算中如果参与运算的操作数类型不一样,则系统会对其进行类型转换,这是隐含转换,转换的原则就是将低类型的数据转换为高类型数据。
各类型从低到高依次为char,short,int,unsigned int,long,unsigned long,float,double。类型越高范围越大,精度也越高。隐含转换是安全的,因为没有精度损失。
逻辑运算符的操作数必须是bool型,如果不是就需要将其转换为bool型,非0数据转换为true,0转换为false。位运算操作数必须是整数,如果不是也会自动进行类型转换,也是低类型数据转换为高类型数据。
赋值运算要求赋值运算符左边的值和右边的值类型相同,不同的话也要进行自动转换,但这个时候不会遵从上面的原则而是一律将右值转换为左值的类型。
比如,int iVal; float fVal; double dVal;则dVal=iVal*fVal;计算时先将iVal转换为跟fVal一样的float型,乘法的结果再转换为double型。
参考资料来源:百度百科-C语言
参考技术A1 datatype即数据类型,然而C语言本身并没有datatype类型。不过结合typedef语句或#define语句,可以使datatype来代替已存在的类型
2 用法示例,用datatype来代替int
#include<stdio.h>typedef int datatype; //方法(1)
//#define datatype int //方法(2)
int main()
datatype num = 12;
printf("%d\\n", num);
getchar();
return 0;
3 运行结果
所有 Spark SQL DataType 的 Scala 类型映射是啥
【中文标题】所有 Spark SQL DataType 的 Scala 类型映射是啥【英文标题】:What is the Scala type mapping for all Spark SQL DataType所有 Spark SQL DataType 的 Scala 类型映射是什么 【发布时间】:2015-12-30 05:21:23 【问题描述】:可在 here 中找到可用于 Spark SQL 的不同 DataType
s。谁能告诉我每个 Spark SQL 的DataType
s 对应的 Java/Scala 数据类型是什么?
【问题讨论】:
【参考方案1】:直接来自Spark SQL and DataFrame Guide:
Data type | Value type in Scala
------------------------------------------------
ByteType | Byte
ShortType | Short
IntegerType | Int
LongType | Long
FloatType | Float
DoubleType | Double
DecimalType | java.math.BigDecimal
StringType | String
BinaryType | Array[Byte]
BooleanType | Boolean
TimestampType | java.sql.Timestamp
DateType | java.sql.Date
ArrayType | scala.collection.Seq
MapType | scala.collection.Map
StructType | org.apache.spark.sql.Row
【讨论】:
Java 有这样的映射吗?【参考方案2】:对于那些试图查找 Java 类型的人,它们现在也托管在来自zero323's answer 的链接中。要在此处记录当前版本:
Data type | Value type in Java | API to access or create a data type
-------------------------------------------------------------------------------------------
ByteType | byte or Byte | DataTypes.ByteType
ShortType | short or Short | DataTypes.ShortType
IntegerType | int or Integer | DataTypes.IntegerType
LongType | long or Long | DataTypes.LongType
FloatType | float or Float | DataTypes.FloatType
DoubleType | double or Double | DataTypes.DoubleType
DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() or DataTypes.createDecimalType(precision, scale).
StringType | String | DataTypes.StringType
BinaryType | byte[] | DataTypes.BinaryType
BooleanType | boolean or Boolean | DataTypes.BooleanType
TimestampType | java.sql.Timestamp | DataTypes.TimestampType
DateType | java.sql.Date | DataTypes.DateType
ArrayType | java.util.List | DataTypes.createArrayType(elementType) or DataTypes.createArrayType(elementType, containsNull).
MapType | java.util.Map | DataTypes.createMapType(keyType, valueType) or DataTypes.createMapType(keyType, valueType, valueContainsNull)
StructType | org.apache.spark.sql.Row | DataTypes.createStructType(fields)
StructField | The value type in Java of the | DataTypes.createStructField(name, dataType, nullable)
| data type of this field (For |
| example, int for a StructField |
| with the data type IntegerType) |
在使用 StructTypes 时需要特别注意的一点 - 如果您希望在另一个中声明一个空的 StructType 作为占位符值,您必须使用 new StructType()
而不是建议的 DataTypes.createStructType((StructField)null)
来防止 null指针。记得在使用之前用 StructFields 实例化嵌套的 StructType。
【讨论】:
以上是关于C语言中的datatype是啥的主要内容,如果未能解决你的问题,请参考以下文章
所有 Spark SQL DataType 的 Scala 类型映射是啥