C程序输出结果问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 17:17:23
我要推理过程,谢谢了!
#include <stdio.h>
int x[6]={1,2,3,4,5,6};
main()
{
int *p;
for (p=x;p<x+6;p++)
{
if ((p-x)%3==0)
printf("%d,",*p);
}
printf("\n");
}

只要明白for中初始化后(p=x),p和x都是指向数组x中第一个元素(就是1)的地址就很简单了
p-x依次为0,1,2,3,4,5
if ((p-x)%3==0) 则p-x为0和3时为真
p指向数组第0个(就是1)、第3个(就是4)元素时输出
*p 结果为1,4,
指针!!!加油吧