我正在做去年的C编程考试。我写了以下程序:
该程序(见下文)定义了变量x和y。
它产生了给定的输出结果。请解释为什么变量x的输出中出现了字符“A”。
程序:
#include <stdio.h>
main ()
{
char x[6] = "12345\0";
char y[6] = "67890\0";
y[7]='A';
printf("X: %s\n",x);
printf("Y: %s\n",y);
}
程序输出: X:1A345 Y:67890
它有相当高的分数(7)。我不知道如何详细解释它。我的答案是:
字符数组(y)只分配了6个字符,因此更改第7个字符将更改堆栈中其后面的任何内容。
非常感谢任何帮助!(我只是一年级学生)
y[7] = A
导致的,那就意味着变量是 反向 排序的。x
在y
之前被声明 - 不是吗?这对我来说似乎很奇怪。 - Tamás Szabó