C语言教程
+ -

C语言 数据类型

2019-09-09 197 3

c中的数据类型是指用于声明不同类型的变量或函数的扩展系统,变量的类型决定了它在存储中占据多少空间。

No. Types 描述
1 基本类型 它们是算术类型,并且进一步分类为:(a)整数类型和(b)浮点类型。
2 枚举类型 用于定义只能在整个程序中分配某些离散整数值的变量。
3 void类型 类型说明符 void 表示没有返回值。
4 派生类型 它们包括:
)指针类型(Pointer types)
(b)数组类型(Array types)
(c)结构类型(Structure types)
(d)联合类型(Union types)
(e)函数类型(Function types)

数组类型和结构类型统称为集合类型。函数的类型指定函数的返回值的类型。

整数类型

下表提供了标准整数类型的详细信息及其存储大小和值范围-

Type 存储空间 值范围
char 1个字节 -128至127或0至255
unsigned char 1个字节 0到255
signed char 1个字节 -128至127
int 2或4个字节 -32,768至32,767或-2,147,483,648至2,147,483,647
unsigned int 2或4个字节 0至65,535或0至4,294,967,295
short 2个字节 -32,768至32,767
unsigned short 2个字节 0至65,535
long 8个字节 -9223372036854775808至9223372036854775807
unsigned long 8个字节 0到18446744073709551615

要获取特定平台上类型或变量的确切大小,可以使用 sizeof 运算符,表达式 sizeof(type)产生对象或类型的存储大小(以字节为单位)。

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

当您编译并执行上述程序时,它在Linux上产生以下输出:

 CHAR_BIT    :   8
 CHAR_MAX    :   127
 CHAR_MIN    :   -128
 INT_MAX     :   2147483647
 INT_MIN     :   -2147483648
 LONG_MAX    :   9223372036854775807
 LONG_MIN    :   -9223372036854775808
 SCHAR_MAX   :   127
 SCHAR_MIN   :   -128
 SHRT_MAX    :   32767
 SHRT_MIN    :   -32768
 UCHAR_MAX   :   255
 UINT_MAX    :   4294967295
 ULONG_MAX   :   18446744073709551615
 USHRT_MAX   :   65535

浮点类型

下表提供了标准浮点类型的详细信息以及存储大小和值范围及其精度-

类型 存储空间 值范围 精度
float 4字节 1.2E-38至3.4E + 38 6个小数位
double 8字节 2.3E-308至1.7E + 308 15个小数位
long double 10字节 3.4E-4932至1.1E + 4932 19个小数位

头文件float.h定义了宏,这些宏使您可以使用这些值以及有关程序中实数二进制表示形式的其他详细信息

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d\n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

当您编译并执行上述程序时,它在Linux上产生以下输出:

torage size for float : 4 
LT_MAX      :   3.40282e+38
LT_MIN      :   1.17549e-38
FLT_MAX     :   -3.40282e+38
FLT_MIN     :   -1.17549e-38
BL_MAX      :   1.79769e+308
BL_MIN      :   2.22507e-308
DBL_MAX     :  -1.79769e+308
recision value: 6

void 类型

void类型指定没有可用值,它在三种情况下使用-

No. Types 描述
1 函数返回值为void类型 C中有各种函数不返回任何值,或者可以说它们返回void。
2 函数参数为void类型 C中有各种函数,它们不接受任何参数。如, int rand(void);
3 void指针类型 类型为void *的指针表示对象的地址,但不表示其类型。如,内存分配函数 void * malloc(size_t size);返回指向void的指针,该指针可以转换为任何数据类型。

0 篇笔记 写笔记

ObjectiveC 数据类型
在Objective-C编程语言中,数据类型是指用于声明不同类型的变量或函数的扩展系统。 变量的类型决定了它在存储中占用的空间大小以及如何解释存储的位模式。Objective-C中的类型可分为以下几类 -编号类型描述 1基本类型它们是算术类型,由两种类型组成:(a)整数类型和(b)浮点类型。 2......
Redis 数据类型
Redis支持5种数据类型。StringsRedis字符串是字节序列,Redis中的字符串是二进制安全的,这意味着它们的长度不受任何特殊终止字符的确定,因此,您可以在一个字符串中存储高达512MB的任何内容。redis 127.0.0.1:6379> SET name "byteki......
Java toDegrees() 方法
toDegrees() 方法用于将参数转化为角度。语法double toDegrees(double d)参数d -- 任何原生数据类型。返回值该方法返回 double 值。实例public class Test{ public static void main(String args[]){......
C# 泛型(Generic)
泛 型(Generic)允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。下......
Java round() 方法
round() 方法返回一个最接近的int、long型值。语法该方法有以下几种语法格式:long round(double d)int round(float f)参数d -- double 或 float 的原生数据类型f -- float 原生数据类型返回值返回一个最接近的int、long型值,......
Ruby 数据类型
本章节我们将为大家介绍 Ruby 的基本数据类型。Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols,以及true、false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash。数值类型(Number)1、整型(Integer)整型分两种,......
C语言 重定义数据类型
C编程语言提供了一个名为 typedef 的关键字,您可以使用该关键字为类型指定新名称,以下是为一字节数字定义术语 BYTE 的示例-typedef unsigned char BYTE;在此类型定义之后,标识符BYTE可以用作类型 unsigned char 的缩写。BYTE b1, b2;按照......
Python3 基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:#!/......
GO语言 数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号类型和描述 1布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例......
Java Number & Math 类
一般地,当需要使用数字的时候,我们通常使用内置数据类型,如: byte 、int、long、double 等。实例int a = 5000;float b = 13.65f;byte c = 0x4a;然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,J......
Java toString() 方法
toString() 方法用于返回以一个字符串表示的 Number 对象值。如果方法使用了原生的数据类型作为参数,返回原生数据类型的 String 对象值。如果方法有两个参数, 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。语法以 String 类为例,该方法有以下几种语法格式:Stri......
C++ 指针
学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的......
C语言 数据类型
c中的数据类型是指用于声明不同类型的变量或函数的扩展系统,变量的类型决定了它在存储中占据多少空间。No.Types描述 1基本类型它们是算术类型,并且进一步分类为:(a)整数类型和(b)浮点类型。 2枚举类型用于定义只能在整个程序中分配某些离散整数值的变量。 3void类型类型说明符 void......
MySQL 数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值......
Java abs() 方法
abs() 返回参数的绝对值。参数可以是 int, float, long, double, short, byte类型。语法各个类型的方法格式类似如下:double abs(double d)float abs(float f)int abs(int i)long abs(long lng)参数任......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!