第2章:数据类型
先介绍一些计算机指令简单的知识:
大家都知道我们的计算机有硬盘、有内存这两样东西,都属于存储器,但是硬盘属于在掉电后不丢失信息,一般我们把资料存放在硬盘;然而内存掉电会丢掉所有信息,为什么我们还要使用内存呢?
其实计算机的指令上电后都运行在内存上,原因很简单,内存运行速度比硬盘速度快几个数量级。
指令由操作码与操作数组成,操作码我们先简单理解为+、-、*、/这4种;操作数是参与运算的数据,但是不是所有的运算都是数值类型的,还有字符、指针等类型….
这样就出现了各种各样的数据类型。
数据类型——模具与容器原理
所谓数据类型,我们可以简单理解就是一个模型。打个比方,大家都喜欢喝饮料,饮料都由瓶子装起来的,可口可乐有灌装、瓶装,芬达也有…不同的饮料装在不同种类的瓶子;但是每一种瓶子都由各自的模具生产出来,生产出来后的瓶子都特定装一种饮料。
这里的模具就是数据类型,生产出来的瓶子就是变量,瓶子里面装的东西就是数值。
这样,我们想像得到在内存里面按照一个数据类型(模具)来产生出一个变量(瓶子),这个变量可以存放特定的数值(饮料)。
C语言的数据类型大致有以下几种:看图1
图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 int或unsigned。(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的地址,
解释:
指针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语言常用数据类型就介绍到这里,对于前途无量的您可以去查看更详细的资料。