一、整型

①有符号整型

有符号整型关键字变量声明实例字符长度
有符号短整型shortshort int a; 或者 short a;2 byte
有符号基本整型intint a;4 byte
有符号长整型longlong int a; 或者 long a;4 byte
有符号长长整型long longlong long int a; 或者 long long a;8byte

②无符号整型

无符号整型关键字变量声明实例字符长度
无符号短整型unsignedunsigned int a;4 byte
无符号基本整型unsignedunsigned long b;8 byte
无符号长整型unsignedunsigned short c;16 byte

二、实型

又称“浮点型”

实型关键字变量声明实例字节长度
单精度实型floatfloat a;4byte
双精度实型doubledouble a;8byte
长双精度实型long doublelong double a;12byte

三、字符型

数据类型关键字变量声明实例字节长度
字符型charchar a;1byte

注意: 字符型只是描述单个字符,C语言中没有提供字符串的数据类型,因此字符串的存取要用字符串数组来实现。

四、枚举型

枚举即”一一例举“之意,当某些量仅由有限个数据值组成时,通常用枚举类型来表示。
枚举数据类型描述的是一组整型值的集合,需用关键字 enum 来定义

enum response{no,yes,none};//声明了名为response的枚举变量,它可能取值no、yes、none
enum response answer;//定义了一个response枚举类型变量answer
//使用方式
//1. 给变量answer赋值,只能是定义的no、yes、none三个值之一
answer=no;
//2. 可在条件语句中使用
if(answer==yes){
	...
}

五、构造类型

构造类型是由基本数据类型按一定规则组合而成的复杂数据类型,包括 数组型结构体类型共用体类型

①数组

数组是由相同类型的数据构成的一种数据结构,适合于对具有相同属性的数据进行批处理。

int score[10];
char name[20];

②结构体

结构体将不同类型的数据成员组织到统一的名字之下,适合对于关系紧密、逻辑相关、具有相同或不同属性的数据进行处理。

struct date{
	int year;
	int mouth;
	int day;
};

③共用体

共用体也能表示逻辑相关的不同类型的数据集合,但其数据成员是情形互斥的,每一时刻只有一个数据成员起作用。

union{
	int single;
	char spouseName[20];
	struct date divorcedDay;
};

补充:结构体变量内存分配问题

  • 结构体类型所占内存的字节数并非是所有成员所占内存字节的总和,它不仅与所定义的结构体类型有关,还与计算机系统本身有关。
  • 计算结构体所占内存的字节数: sizeof() 方法 使用 sizeof(变量名) 的形式可以计算一个变量所占内存的字节数。

六、指针类型

指针类型是一种更加灵活的数据类型,用来表示内存地址,具有指针类型的变量,称为指针变量

//1. 指针变量的类型声明
int *ptr;
char *pStr;
//2. 指针变量的初始化
ptr=&a;
pStr=&b;//&为取地址运算符,用于获取变量a的地址(a变量在内存中所占空间的首地址)

注意: 指针变量中存放的虽然是变量的地址值,二者在数值上相等,但在概念上变量的指针并不等同于变量的地址。变量的指针是一个常量,不能对其赋值,而变量的指针是一个变量,其值是可以改变的。

七、空类型

空类型是从语法完整性角度给出的数据类型,表示不需要数据值,因而没有类型,其一般使用关键字void描述。

void Sort(int array[],int n);
void *malloc(unsigned int size);
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐