【发布时间】:2014-08-26 22:15:50
【问题描述】:
下面显示的代码旨在首先操作字符串 p 的内容,然后打印其内容。我已经使用两个 while 循环和一个 printf 语句测试了代码。
#include <stdio.h>
#include <string.h>
int main(void) {
char p[10] = "Hello";
char *a = p;
while(*a++)
;
*a++ = '1';
*a++ = '\0';
a = p;
int i;
for(i = 0; i < 10; i++)
putchar(a[i]);
putchar('\n');
for(i = 0; i < 10; i++)
putchar(p[i]);
putchar('\n');
printf("%s\n", p);
return 0;
}
输出:
xxx@ubuntu:~$ gcc -o test test.c
xxx@ubuntu:~$ ./test
Hello1
Hello1
Hello
现在,我有两个问题,首先,打印这 7 个字符(包括 NULL)后,前两行中的所有垃圾值在哪里显示。其次,为什么 printf 语句的输出是 'Hello' 而 is 应该是 'Hello1'??
【问题讨论】:
标签: string char initialization printf