0.指针&指针变量
32位平台,指针变量是4个字节(32bit/8=4)——–x86
64位平台,指针变量是8个字节(64bit/8=8)——–x64
编号=指针=地址;我们平常讲的p是指针就是说p是一个指针变量;
************只要是指针变量,在一个平台上,大小都是一样的,为什么要区分不同的类型呢?
因为不同类型的指针,决定了对指针进行解引用操作的时候可以访问的字节数——指针的权限;同时也决定了指针向前向后走一步有多大——-步长;
1.野指针
局部变量不进行初始化时侯,是随机值;
野指针—————指针变量不进行初始化,默认随机值,但对其进行赋值;或者是越界访问;
1.类型
(1)未初始化
(2)越界访问
(3)指针指向的空间释放
2.如何避免野指针
(1)知道地址直接初始化,不知道地址就初始化为NULL(空指针,没有有效的空间,不可直接用);
(2)指针指向的空间释放,及时置为NULL;
2.指针运算
(1)指针+-整数
通过指针对数组的元素进行赋值并打印;
(2)指针-指针
两个指针能够进行运算的前提是指向同一块空间;而且得到结果的绝对值就是之间相差的元素的个数,这取决于是高地址减去低地址,还是低地址减去高地址;
(3)指针的关系运算
比较指针的大小,因为地址是有大小的;数组中,地址由低到高,可以通过指针的关系运算作为终止条件;
这里用地址大小作为条件,将数组元素全部赋值成0;
3.二级指针
p指针是一级指针,用来存放a的地址;pp指针是二级指针,用来存放一级指针p的地址;
4.指针数组模拟二维数组
p[3]是一个指针数组,int*类型,p[i]找到对应的数组,p[i][j]就是所找到数组的对应下标元素;
原文地址:https://blog.csdn.net/binhyun/article/details/136067936
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_67727.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!