【发布时间】:2017-01-24 02:28:14
【问题描述】:
#include <stdio.h>
#include <conio.h>
int main()
{
char b[] = "samuel ricky";
char c[2];
c[0] = 'd';
c[1] = 'a';
c[2] = 'd';
printf("%s\n", b);
getch();
return 0;
}
如果我运行这段代码,输出是:
达缪尔·瑞奇
如果代码被删除
c[2] = 'd';
输出是:
塞缪尔·瑞奇
而如果代码被删除,则与结果输出完全没有联系。 它是怎么发生的?
【问题讨论】:
-
你确定输出是
daniel ricky而不是damuel ricky? -
@purag 好吧。
-
c是一个足以容纳两个元素的数组。你把三个元素放进去。这是未定义的行为。 -
那是令人着迷的行为。好地方。
标签: c arrays string char printf