&i+1的意义是什么

xjyr xjyr 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在《c 陷阱和缺陷》第35页有这样一句话。

int *ip;
int i;

ip=&i;
*ip=17;
如果ip指向一个整数,那么ip+1指向的是计算机内存中下一个整数,在大多数现代计算机中,它都不同于ip所指向内存的下一个内存位置。


本人编了个小程序测试了下:
main()
{
int i=5;
int *ip=&i;

clrscr();
printf("i = %d, &i = %p, ip=%p, ip+1 = %p, &i+1 = %p, *(ip+1) = %d",
i, &i, ip, ip+1, &i+1, *(ip+1));

getch();
}
在Win2000 Tc2.0中其输出结果是:
i = 5, &i = FFD2, ip=FFD2, ip+1 = FFD4, &i+1 = FFD4, *(ip+1) = -32

根据本程序结果来看,很明显: 如果ip指向一个整数,那么ip+1指向的是ip所指向内存的下一个内存位置。 作者是不是把话说反了,还是PC机是特殊情况?
请诸位大虾赐教!!!!!!!!!!

注: 本人系统Win2000 软件Tc2.0
...全文
评论 19
收藏 已收藏
分享
返回顶部
xjyr
C语言 70,039 成员 243,237 内容