-
声明指针
类型名* 指针名;
比如:
int a;
double b;
char c;
char** pp;
struct Tag* sp;
-
指针的赋值
指针变量应该被赋以内存的地址,对于变量而言用&取其地址,数组名作为首元素地址时也可以赋给指针变量,malloc(包括realloc和calloc)动态开辟的内存返回的是堆上分配的内存块的首地址,使用前强转为需要的类型。
int a = 0;
int* pa = &a;
char arr[10] = {0};
char* pc = arr;
char** ppc = (char**)malloc(sizeof(char*)*5);
-
指针的解引用
方法有二:使用*解引用或者使用数组表示法解引用,注意解引用前一定要判断指针的有效性
//a的值被改变为10
int a = 5;
int* pa = &a;
*pa = 10;
//这种方法也可以把a的值改变为10
int a = 5;
int* pa = &a;
pa[0] = 10;
指针和数组的关系另开一篇讨论。
-
数组名
数组名在一般情况下代表数组首元素的地址