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语言

参考技术A

1 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 运行结果

参考技术B datatype不是C的系统类型,是程序设计者自定义类型。具体表示什么,要看代码。本回答被提问者采纳 参考技术C 同楼上,而且我觉得应该是ElemType,你可能问错了

所有 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 的不同 DataTypes。谁能告诉我每个 Spark SQL 的DataTypes 对应的 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 类型映射是啥

datatype 在C语言中怎么使用 后便可以跟啥数据类型 datetype *elem 啥意思

C语言指针数组(每个元素都是指针)

C语言版链表的实现

顺序表 c语言的顺序表

C语言篇No2指针变量