第2章:数据类型

先介绍一些计算机指令简单的知识:

   大家都知道我们的计算机有硬盘、有内存这两样东西,都属于存储器,但是硬盘属于在掉电后不丢失信息,一般我们把资料存放在硬盘;然而内存掉电会丢掉所有信息,为什么我们还要使用内存呢?

   其实计算机的指令上电后都运行在内存上,原因很简单,内存运行速度比硬盘速度快几个数量级。

指令由操作码与操作数组成,操作码我们先简单理解为+-*/4种;操作数是参与运算的数据,但是不是所有的运算都是数值类型的,还有字符、指针等类型….

这样就出现了各种各样的数据类型。

数据类型——模具与容器原理

所谓数据类型,我们可以简单理解就是一个模型。打个比方,大家都喜欢喝饮料,饮料都由瓶子装起来的,可口可乐有灌装、瓶装,芬达也有不同的饮料装在不同种类的瓶子;但是每一种瓶子都由各自的模具生产出来,生产出来后的瓶子都特定装一种饮料。

这里的模具就是数据类型,生产出来的瓶子就是变量,瓶子里面装的东西就是数值

这样,我们想像得到在内存里面按照一个数据类型(模具)来产生出一个变量(瓶子),这个变量可以存放特定的数值(饮料)。

C语言的数据类型大致有以下几种:看图1

232606270.png

1



计算机存储转换单位:

bit : 一位

byte:字节,简称b

half word:半字

word:

1byte = 8bit

1 word = 2 halfword = 4b = 32bit

1Kb = 1024b

1Mb=1024Kb

1Gb=1024Mb

1Tb=1024Gb

1Pb=1024Tb


数据类型无符号:unsigned

不声明则为有符号

无符号型又可与上述三种类型匹配而构成:
(1)
无符号基本型类型说明符为unsigned intunsigned
(2)
无符号短整型类型说明符为unsigned short
(3)
无符号长整型类型说明符为unsigned long

数据类型大小一览表:(32位系统)

类型

大小

范围

int

2b

-32768~32767

short

2b

-32768~32767

long

4b

-2147483648~2147483647

float

4b


double

8b


char

1b

-128~127






数组:各种数据类型的集合

例:

        int a[3]={2,4,5};//每个元素都是int型,a[0]=2,a[1]=4,a[2]=5.



指针:指向其他类型的地址(相当于给变量取个别名)

指针变量一旦指向某个变量(必须数据类型相同),代表其他变量的地址。

例:

        int a=5;

        int *p;//指针变量,由*号标识

        p=&a;//表示指针p指向了变量a的地址,


233001599.png

解释:

指针P拥有自己的内存空间,指向a的地址,p相当于&a,都是地址;

*p就相当于a,表示数值。


数组:

        inta[10]={1,2,3,4,5,6,7,8,9,10};

        int*p=a;//如果是数组,p只要指向数组的名字就行



结构体:属于集合

例:

/****************************************************************************

        1.所谓结构体,就是一种新的类型(如int,char,float,double...

        2.其实就是把一堆描述同一类东西的变量打包起来,在给这个包起一个名字

        3.是高级语言(如C++JAVA...)面向对象思想的过度,c语言是面向过程

****************************************************************************/


//定义一个结构体,描述一个人的基本特征

typedef struct{

        char            name[20];    

        char            gender[10];

        unsignedint     age;

        unsignedint     heigh;

        char            school[50];

}People;


//People是一种新的类型


        People*p1=new People;//指针变量声明

        Peoplep2;//普通变量声明

(附带例子,免费提供下载)


共同体:新类型集合

实例分析://与结构体相似
union data1
{
   double d;
   int i;
   char c1;
   char c2[9];
};


枚举类型:新类型集合

实例分析://与结构体相似

enum color

{

Red,

Yellow,

Blue,

White,

black

};


void类型

void的字面意思是无类型void *则为无类型指针void *可以指向任何类型的数据。


void真正发挥的作用在于:
1对函数返回的限定;
2对函数参数的限定。


C语言常用数据类型就介绍到这里,对于前途无量的您可以去查看更详细的资料spacer.gif