指针本质是地址
指针变量大小:32位机器指针大小是4个字节,64位是8个字节。
指针类型:
指针类型不同但是指针大小相同,为什么还要区分指针类型呢?
上图可以看出,指针的类型不同,但是输出的地址是一样的。pa,pc 都是指针,存放在四个字节的内存中是足够的。
调试之后,可以在调试窗口里面打开内存窗口,查看存储情况。
解引用操作把a中四个字节的内容都换掉。
在调试之后,在内存中改掉了一个字节内容。
总结:指针类型决定了指针在解引用操作的时候能访问空间。
int* ,*p 能够访问4个字节
char* ,*p能够访问1个字节
double* ,*p能够访问8个字节
指针加减整数
int*; p+1 向后跳1个整形(步长)
char; p+1向后条一个字符
double;p+1向后条一个双精度
野指针:指针指向的位置不可知的
出现的情况:①局部变量未初始化,被认为是随机值。
②访问空间越界。
③指针指向的内存空间释放了。