请问各位,这个程序运行结果是?

#include
int main(void) {
char s[]="ABCD";
char *p;
for (p=s;p<s+4;p++)
printf("%c\n",*p);
return 0;
}

#include "stdafx.h"

int main(int argc, char* argv[])
{
char s[]="ABCD";
char *p;
for (p=s;p<s+4;p++)
printf("%s\n",p);
return 0;
}
这样才对,,你试试我这样的结果就是
ABCD
BCD
CD
D

A
B
C
D

书上说结果应该是:
ABCD
BCD
CD
D
啥情况

我觉得是:
A
B
C
D

有图有证据:
图片说明

printf("%s\n",p) 是以字符串形式输出p,从p的起点位置开始输出,遇到\0结束

所以应该是:

ABCD
BCD
CD
D

printf("%c\n",p) 是以字符串形式输出p,从p的起点位置开始输出,遇到\0结束

所以应该是:

ABCD
BCD
CD
D

A
B
C
D

这样就对了
图片说明

%s的话,程序就崩溃了

嗯 对对 改成P 看来是书印刷错误了