&i+1的意义是什么
xjyr 2005-12-21 10:36:31 在《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