C语言指针可以相减吗?为什么?
4 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
如果两个指针向同一个数组,它们就可以相减,其为结果为两个指针之间的元素数目。仍以本章开头介绍的街道地址的比喻为例,假设我住在第五大街118号,我的邻居住在第五大街124号,每家之间的地址间距是2(在我这一侧用连续的偶数作为街道地址),那么我的邻居家就是我家往前第(124-118)/2(或3)家(我和我的邻居家之间相隔两家,即120号和122号)。指针之间的减法运算和上述方法是相同的。
C 语言指针怎么理解?
你可以把它想象成一条无限长的纸带。纸带上边有一个个的小格子,每个小格子正好是一字节,里边能够存放一个数字。计算机的工作就是对这些小格子里的数字做处理。虽然你在电脑上能够看视频、听音乐,但这些东西本质上都是存在内存这条纸带上的数字。
饮歌长啸
TA贡献1951条经验 获得超3个赞
同类型的指针可以相减,其结果是两个指针所指向地址间相差的这个类型元素的个数,如果是高地址的减低地址就是正数,否则就是负数
比如int a[100], *p, *q;
p = &a[10];
q = &a[22];
那么q - p = 12,就是两者之间差了12个元素,q在后(高地址)
p - q = -12,p在前
10 2
- 4 回答
- 0 关注
- 652 浏览
添加回答
举报
0/150
提交
取消