C语言题目,有关指针的。 main() {char s〔〕="ABCD",*p; for(}

main()
{char s〔〕="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);}
请各位大神帮我仔细讲讲过程吧,小弟在此万分感谢呀!
p+4是什么意思啊?不满足它是个什么条件啊?困惑呀!

首先:p = s+1; // s表示"ABCD" 这个字符串的首地址,即指向A的地址 p = s+1, 则是在s的位置上向后偏移了一位,即p指向了B的地址; 然后把p指向的字符串打印出来就是"BCD"

p++; //p指向的是B的地址,++后就向后偏移一位, 就指向了C的位置, 所以打印出来是"CD"

同理这样下去,直到p < s +4 ;不成立, 则退出循环
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-08
s的地址其实是字符串的第一个字符所在的地址,,也就是A的地址,s+1就是B,这个程序应该是显示字符串BCD。
第2个回答  2012-08-07
P是指向A,p+4是P向右偏移4位,移到D后面,即'\0',
第3个回答  2012-08-08
p+4就是p指针指向的位置移动4个,可以看到这个循环是一个三次循环,要输出三个字符串才对也就是输出BCD,CD,D
第4个回答  2012-08-08
p是指针的首地址,也就是&p(0),p+4就是&p(4)
第5个回答  2012-08-07
ccccc
相似回答