一,基本类型
1,int
1>long int ==long 8个字节 %ld
2>short int ==short 2个字节 %d %i
3>unsigned int ==unsigned 4个字节 %zd
4>signed int ==signed==int 4个字节 %d %i
2,float /double
1>float 4个字节 %f
2>double 8个字节 %f
3,char
1>1个字节 %s
2>char类型保存在内存中的是它的ascII码值
‘A‘---->65
二,构造类型
1,数组
1>只能由同一种类型的数据组成
2>定义: 数据类型 数组名[ 元素个数]
2,结构体
1>可以由多种类型的数据组成
2>定义: 先定义类型,再利用类型定义变量
三,指针类型
1,变量的定义
int *p;
2,间接操作变量的值
int array[20]={0};
int *ptr=array;
for(i=0;i<20;i++)
{
(*ptr)++;
ptr++;
}
这个例子将整型数组中各个单元的值加1。由于每次循环都将指针ptr加1个单元,所以每次循环都能访问数组的下一个单元。
一个指针ptrold加(减)一个整数n后,结果是一个新的指针ptrnew,ptrnew的类型和ptrold的类型相同,ptrnew所指向的类型和ptrold所指向的类型也相同。
ptrnew的值将比ptrold的值增加(减少)了n乘sizeof(ptrold所指向的类型)个字节。
就是说,ptrnew所指向的内存区将比ptrold所指向的内存区向高(低)地址方向移动了n乘sizeof(ptrold所指向的类型)个字节。
//字符串变量
char name[] = "it";
name[0]=‘T‘;
//字符串常量:
char *name2 = "it";
*name2=‘T‘;//报错,不可改
定义字符串的2种方式:
1.利用数组:
char name[] = "itcast";
特点:字符串里面的字符是可以修改的
2.利用指针
char *name = "itcast";
特点:字符串起始是一个常量字符串,里面的字符是不能修改的
四,枚举类型
当一个变量只允许由几个固定的取值时