指针本身也是一个变量,一块空间,里面存的值是地址,类型是unsign long,跟随系统,系统是32位它就是32位,系统64位它就是64位。里面存的是另一个变量的首地址。
int * a;
意思是 a是一个int型指针,就是a里面存的是个地址,这个地址里面存的变量是int型的。
void * b;
意思是 b这个指针是无类型的。就是a里面存的地址,这个地址里面存的变量是任意类型都可以。
malloc向系统申请内存,需要强制转换类型,因为malloc操作后是一个无类型的指针。需要转换为对应的类型。
malloc之后记得要free掉,就是把这个指针跟指向的地址之间的联系断开,之后指向那个地址的指针就没有它了。