数据类型分为简单数据类型和复杂数据类型函数
数据类型可理解为建立变量的模具;是固定内存大小的别名;指针
数据类型的做用:编译器预算对象(变量)分配的内存空间大小;对象
求数据类型的大小——sizeof()是操做符,不是函数;sizeof()测量的实体大小在编译期就已经肯定了。内存
数据类型能够取别名——typedef原型
void的字面意思是“无类型”,void *则为“无类型的指针”,void *能够指向任何类型的数据;编译器
用法1:数据类型的封装it
int InitHardEnv(void **handle);编译
内存操做函数memcpy和memset的函数原型分别为:变量
void *memcpy(void *dest, const void *scr, size_t len);数据类型
void *memset(void *buffer, int c, size_t num);
用法2:void修饰函数的返回值和参数,仅表示无
若是函数没有返回值,那么能够将其声明为void类型;
若是函数没有参数,能够将其参数声明为void;
void指针的意义
C语言规定只有相同类型的指针才能够相互赋值;
void *指针做为左值用于“接收”任意类型的指针;
void *指针做为右值赋值给其余指针时需强制类型转换;
int *p1 = NULL;
char *p2 = (char *) malloc(sizeof(char) * 20);
不存在void类型的变量
C语言没有定义void到底是多大内存的别名
变量
既能读又能写的内存对象;
(一段连续)内存空间的别名
程序经过变量来申请和命名内存空间;
经过变量名访问内存空间;
修改变量的方法
直接修改;
间接修改;拿到内存编号来修改内存——指针;
内存空间能够取别名——引用