1.指针也分类型,有啥类型的数据,就有啥类型的指针。eg:int p; int *p;
2.指针存放的数据的地址,所以指针变量会有eg:
int var_runoob = 10;
int *p; // 定义指针变量
p = &var_runoob;
这种写法。
3.初始化指针可以用NULL来赋值
eg:
#include <stdio.h>
int main ()
{
int *ptr = NULL;
printf(“ptr 的地址是 %p\n”, ptr );
return 0;
}
4.指针的指针和对指针*p的理解:
指针的指针相当于是套娃,*p 按%d输出会输出的的值,就是指向那个地址存放的值;
*P按%p输出会输出地址。
#include <stdio.h>
int main ()
{
int V;
int *Pt1;
int **Pt2;
V = 100;
/* 获取 V 的地址 */
Pt1 = &V;
/* 使用运算符 & 获取 Pt1 的地址 */
Pt2 = &Pt1;
/* 使用 pptr 获取值 */
printf(“var = %d\n”, V );
printf(“Pt1 = %p\n”, Pt1 );
printf("*Pt1 = %d\n", *Pt1 );
printf(“Pt2 = %p\n”, Pt2 );
printf("**Pt2 = %d\n", **Pt2);
return 0;
}
5.指针的运算,int p; p++;
就这种运算对应的是地址,而加的时候不要带星号()
6.指针让我觉得烦的一个地方在于,*p=地址,p=s 不带星就可以赋值啊,运算啥的,带星只能等于地址,这点我是真的不适应。