typedef
13.1 函数指针重命名
int (*x (void(*p)( ) )) (char);//返回类型int(*)(char) 函数名 x 形参 void(*p)()
变量x定义为一个函数
替换:
typedef void (*T)(); //定义T为指向void func()函数的指针
typedef int (*U)(char); //定义U为指向int func(char)函数的指针
U x(T p);
13.2 数组指针重命名
typedef a ARR[10]; //ARR表示a[10]
ARR b;
函数也是这种形式写
14 堆内存的分配及相关函数
void* malloc(size bytes);
void *memset(void *s, int c, size_t n);//地址,数值(0),大小
void* calloc(size_t nmemb,size_t size); //第一个参数是元素的个数第二个参数是每个元素的所占的字节数,为数组分配,初始化为0
void * realloc(void* ptr,size_t size); //重新分配,但不会初始化为0
void free(void *ptr); //释放--> realloc (地址,0)
double* p=malloc(sizeof(double));//可以把返回的void类型赋值double类型,C允许,C++更严格,所以最好强制类型转换一下
double *p=(double*)malloc(sizeof(double));
if(p==NULL) //每次分配需判定是否成功
printf("申请空间失败\n");
|