#include<stdio.h>
#include<string.h>
int main()
{
int i, n;
char *x="Alice"; // ....... 1
n = strlen(x); // ....... 2
*x = x[n]; // ....... 3
for(i=0; i<=n; i++)
{
printf("%s ", x);
x++;
}
printf("\n");
return 0;
}
字符串常量不能修改。在上面的代码中,*x 表示“A”。在第 3 行,我们试图修改一个字符串常量。写那个陈述是否正确?当我在Linux上运行这段代码时,我遇到了分段错误。但在 www.indiabix.com 上,他们给出了答案:
如果你用 Turbo C 在 windows 平台编译和执行这个程序,它会给出lice ice ce在其他平台上可能会给出不同的输出(取决于编译器和机器)。本站提供的在线 C 编译器将输出Alice lice ice ce e(它在 Linux 平台上运行)。