20180318 代码错题(5)

以下程序的输出结果是? 
1
2
3
4
5
6
7
#include <stdio.h> main()
{
    char a[10]={ '1','2','3','4','5','6','7','8','9',0},*p; int i;
    i=8;
    p=a+i;
    printf("%s\n",p-3); 
}
6
6789
'6'
789

答案 B  错选 A

1、p指向a[5]
2、“%s”输出直到'\0'的字符串
3、最后的0为数字而非字符‘0’,ASIIC码中0为空字符
 
所以输出的结果是   6789  而不是67890
posted @ 2018-03-18 22:59  Kxzh  阅读(129)  评论(0编辑  收藏  举报