一级指针存储对应变量的地址,如
int a = 5;
int *p;
p = &a;
指针P所指的内存单元存储a的值,其本身也有自己的地址,我们通过二级指针来存储。
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a = 5;
int *p;
int **q;
p = &a;
q = &p;
printf("value of p = %x\n",p);
printf("value of *q = %x\n",*q);
system("pause");
return 0;
}
二级指针应用
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void getMemory(char **p)
{
*p = (char*)malloc(10);
}
int main()
{
char *str =NULL;
getMemory(&str);//传递地址,在这个地址开辟空间
strcpy_s(str,10,"hello");
printf("%s\n",str);
free(str);
system("pause");
return 0;
}