0
char c[]="opop";
c[2]='k';

但它应该给出一个总线错误,为什么它会起作用?

4

1 回答 1

7

你所拥有的是一个数组,而不是一个字符串文字。这是完全有效的代码。

char *c="opop";
c[2]='k';

会导致未定义的行为,很可能会导致崩溃。

好读:
char a[] = "string"; 有什么区别?和 char *p = "字符串";

于 2012-05-03T05:49:08.647 回答