1.什么是指针
内存是由字节组成的,字节很多,所以每个字节都有独属于字节的一个编号,这个编号就是地址,地址就是指针
2.指针的定义
3.*的作用
- 标识符,用在定义指针的时候,表示我定义了一个指针变量 int *p;
- 取值运算符,取了指针所指向的空间里面的内容
- 乘号
int a = 10;
int *p = &a;
P = &a;
*p = a;
4.指针的指向类型和数据类型的大小
Int a = 10;
Int *p = &a;
P的数据类型是int *
p指向的数据类型是int类型
Char a = ‘c’;
Char *p = &a;
指针的数据类型大小在32OS永远是4个字节,不会因为指向的数据类型而发生改变。
Int * char * double * float * 都是四个字节。
5.空指针和野指针
野指针,没有固定指向的指针。
野指针,并不知道指向了那片空间,所以比较危险,一般不用
怎样避免野指针?
让野指针指向NULL,然后需要使用指针的时候再给指针p定义指向。
6.Const
Const int *p :const 修饰了*P,所以*p不能被改变,但是和p没关系,p还可以改变指向
Int const *p:const 修饰了*P,所以*p不能被改变,但是和p没关系,p还可以改变指向
Int * const p:const 修饰了P,所以p不能被改变,但是和*p没关系,*p还可以改变
Const int const *p:const修饰了*P,所以*p不能被改变,但是和p没关系,p还可以改变指向
Int const * const p:p和*p都不能被改变。
const 在*的那个地方,如果在*的左边,*p不能被改变,如果在*的右边 p不能被改变
左数右指
Const在*的左边还是右边