0
点赞
收藏
分享

微信扫一扫

初识指针1

指针本质是地址

指针变量大小:32位机器指针大小是4个字节,64位是8个字节。

指针类型:

初识指针1_初始化

指针类型不同但是指针大小相同,为什么还要区分指针类型呢?

初识指针1_内存空间_02

上图可以看出,指针的类型不同,但是输出的地址是一样的。pa,pc 都是指针,存放在四个字节的内存中是足够的。

初识指针1_指针变量_03

调试之后,可以在调试窗口里面打开内存窗口,查看存储情况。

解引用操作把a中四个字节的内容都换掉。

初识指针1_指针变量_04

在调试之后,在内存中改掉了一个字节内容。

总结:指针类型决定了指针在解引用操作的时候能访问空间。

int* ,*p 能够访问4个字节

char* ,*p能够访问1个字节

double* ,*p能够访问8个字节

指针加减整数

初识指针1_内存空间_05

int*; p+1 向后跳1个整形(步长)

char; p+1向后条一个字符

double;p+1向后条一个双精度

野指针:指针指向的位置不可知的

出现的情况:①局部变量未初始化,被认为是随机值。

    ②访问空间越界。

    ③指针指向的内存空间释放了。


举报

相关推荐

0 条评论