指针

指针(pointer)和 int,char 类似,是一种独立的数据类型,他是一个变量,也有自己的内存地址,用来保存其他变量的内存地址

指针类型

为什么指针需要类型 ?

类型检查

1
2
3
int a = 10;
float b = 10.0;
int* p = &b;

上面后面两行代码,如果没有指针类型,他就无法做编译检查,程序运行的时候就会出错,因为你不做强制转换,是无法直接进行转换的

告知编译器如何取数据

1
2
int a = 10;
int* p = &a;

上面代码中,我们已经把a的地址存到指针 P 中,如果没有指针类型,在解引用(*p) 的时候,编译器就不知道怎么取数据了,我是该按照char取一个字节,还是按照int取4个字节

类型

1
2
int a = 10;
int* p = &a;
  • 指针类型为 int*
  • 指针所指向的类型是 int
  • 指针指向了变量a的内存地址