问个书本上的问题???
#include<stdio.h>void main()
{
int a={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
for(p=a;p<a+12;p++)
{
if((p-a)%4==0) //P每次都增加四个字节,每次都应该整除,怎么会产生余数呢?
{
printf("\n");
}
printf("%4d %d",*p,p);
}
printf("\n");
p每次都增加四个字节是没错,但p-a的结果就不是单纯的减法了,指针相减的结果就是这两个指针之间有多少个指针指向的对象。这里%4就是起到一个每输出4个换行的效果,你可以把它改成5试试。 _DEBUG 发表于 2014-10-2 08:03
p每次都增加四个字节是没错,但p-a的结果就不是单纯的减法了,指针相减的结果就是这两个指针之间有多少 ...
可以再说得详细一些吗?谢谢!!!!!!!!!!! 认真学习领会 谭浩强的书都讲过:
http://bbs.fishc.com/template/dreambred_c_apple/images/common//emp.gif 第8章 有关指针的小结: _DEBUG 发表于 2014-10-3 08:53
第8章 有关指针的小结:
多谢指点!!!!!!!!! 地址之差等于地址之间数据的个数呗~ 学习
页:
[1]