指针常量:
int const *p;
表示p指向的对象为常量,因此无法改变其指向的对象的值,但是指针本身的值即其指向可以发生改变。
常量指针:
int *const p ;
表示指针是一个常量,指针指向不可以修改,但是指针指向的值(无论是常量还是变量)都可以发生修改。
指针常量常量指针:
const int *const p ;
表示指针是一个常量,其本身值(即其指向)不可以修改。其指向的目标也是一个常量,值也不可以修改。
指针定义后须初始化,赋值为NULL;
在C语言中,使用指针时,必须确保指针指向的是一块确定的内存区域;
申请动态空间
函数:malloc();
p = (int * )malloc(sizeof(int);
动态申请的空间并不会自动回收,因此编译时如果内存占用过大时可能会发生内存泄漏,因此用完需要用free释放空间或初始为NULL;
函数:realloc
p = (int *)realloc(p, num*sizeof(int));
函数将p
对象的储存空间改变为给定的大小size参数
size可以是任意大小。 返回值是指向新空间的地址,
如果错误发生返回NULL。