当前位置:   article > 正文

指针p"加一"的表示含义_指针p+1什么意思

指针p+1什么意思

指针的p++,表示哪里加;
例:
#include <stdio.h>
int main()
{
int arr[10]={1,2,3};
int *p = arr;
p++;
*p = 10;
printf("%d,%d\n",arr[0],arr[1]);
return 0;
}
指针加1
1.加一个数组 错误
2.加一个字节 错误
3.加一个单元格 正确
第一种,加一个数组,很显然不成立,因为一个指针指向一个数组,即指向一个数组的第一个单元格。
如果指针加1,加一个数组的话直接越界,跳到下一个数组的第一个单元格,就不能实现对本数组的每一项操作,而且本题只有一个数组,很明显不符合逻辑。
第二种,加一个字节,如果加一个字节的话,如下图在这里插入图片描述
因为int类型占四个字节,一个字节占8位,如果指针p加1,只加一个字节的话,即放大四倍后的每一格占1个字节,所以转化为16进制后,每一格可以放两位数(16进制的一位数占4位),所以计算出加1后的值,00000a01转化为十进制是2561,0;而结果输出的是1,10,所以指针加1,不是加一个字节。
第三种,加一个单元格,因为上题是int类型,所以加4个字节,计算出来的结果就是1,10;所以指针加1,加的是一个单元格。
由此可以推出,
int *p; 是加4个字节
指针+ -数字,地址值需要调整,调整的权重为sizeof(指针去掉一个取值运算符)(这个星号打不出来,很尴尬!)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/79758
推荐阅读
相关标签
  

闽ICP备14008679号