C语言题目请求解答

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:40:42
以下程序运行后的输出结果是9876
876
main()
{char s[]="9876",*p;
for (p=s;p<s+2;p++) printf ("%s\n",p);
}
请问这个结果是如何得出来的呢?

看你的for循环
p=s,所以p指向的是s的首地址
此时p=s+0<s+2;
所以执行 printf ("%s\n",p);
那么输出会是9876;
然后p++
p=s+1<s+2
此时p指向了8
所以第二次printf ("%s\n",p); 时从8开始输出
输出为876

987吧。

第一次循环,p=s,那么输出%s,就是输出整个数组
然后p=p+1了,那么p就指向数组的第二个元素了,那么输出的时候就从第二个元素开始输出了,接着就跳出来循环

怎么会理,应该是没有结果亚,

%s是输出字符串,for循环p=s时从9开始输出为9876,P++之后从8开始输出为876。循环结束。