C语言导航 2.2数据类型

第二节 数据类型

  • 数据类型介绍

  • 基本数据类型详解

2.2.1 数据类型

说明:数据是计算机程序操作的对象和结果,其类型决定了数据占用内存空间大小、存放格式、取值范围运算规则等。

内容:

(1)基本数据类型:是构成C语言数据类型的最基本要素,其值不可以分解为其他类型。

(2)枚举类型:用于声明一组命名的常数,其值不可以分解为其他类型。

(3)构造数据类型:指可以通过其他的数据类型进行构造,可由程序员自定义 。

(4)空类型:用于显示说明一个函数不返回任何值。

(5)指针类型:用于存储地址的一种数据类型。

2.2.2数据类型详解

说明:定义一个完整数据的类型需要如下写法,但系统会根据定义的位置等因素,将存储级别设为auto,修饰类型设为signed等情况,详见【程序现场2-2-2-1】。

定义写法:[存储级别] [修饰类型] [基本类型or复杂类型] [变量名]

一、基本数据类型

void:即空类型,通常定义无返回值的函数以及空指针。

char:即字符型,用一个字节的空间存储一个字符(ASCII码)。

int:即整型,用四个字节的空间存储一个整型的二进制数。

float:即单精度浮点型,用四个字节的空间存储一个浮点型的二进制数。

double:即双精度浮点型,用八个字节的空间存储一个浮点型的二进制数。

二、修饰类型

short:即短整型,修饰int型后可使整型用2个字节的空间存储一个短整型的二进制数。

long:即长整型,修饰int型后可使整型用4个字节的空间存储一个长整型;修饰double型可使双精度浮点型用16个字节存储一个长双精度浮点型。

signed:即有符号数,可使基本数据类型从负数表示到正数。

unsigned:即无符号数,可使基本数据类型从0表示到正数,整数的范围将扩大。

三、复杂类型

struct:即结构体类型,一个结构体可以包含多个数据类型,常用于表示一类事物。

union:即共用体类型,一个共用体中可以包含多个数据类型,但所有变量只占一块空间,一次只能使用一个类型。

enum:即枚举类型,可使枚举常量表示一个整型数字。

sizeof:用法形如函数,其作用是返回一个变量所占空间的字节数。

typedef:可以自定义数据类型名称。

四、存储级别

auto:即自动存储,是内存中代码区申明一块临时的空间。

static:即静态存储,是内存中全局区申明一快半永久的空间。

register:即寄存器存储,是使用寄存器存储一块变量的空间。

extern:用于引用其他作用域中的变量,以使该变量在本作用域中可用。

const:即常类型,其类型的变量或对象的值是不能被修改的。

volatile:确保本条指令不会因编译器的优化而省略,且要求每次直接读值。

注意点:

在C语言中数据类型所占空间没有具体的规定,具体空间由编译器决定,而编译器会限制数据表示范围,即:short与int类型至少为16位,long类型至少为32位,并且short类型不得长于int类型,而int类型不得长于long类型,因此同占四个字节的long和int表示范围不一样。

【程序现场】2-2-2:
#include<stdio.h>
typedef unsigned char uch;
uch ch; //==unsigned char
int main(void)
{
    printf("void =%d\n",sizeof(void));
    printf("char =%d\n",sizeof(char));
    printf("uch =%d\n",sizeof(uch));
    printf("int =%d\n",sizeof(int));
    printf("float=%d\n",sizeof(float));
    printf("double=%d\n",sizeof(double));
    printf("long long=%d\n",sizeof(long long));
    printf("long double=%d\n",sizeof(long double));
    printf("\n");

    short a; //==auto signed short int a;
    long b;  //==auto signed long int b;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值