如果字符串是不可变的,为什么以下代码在turbo c ++上运行

时间:2012-05-03 05:48:08

标签: c++ arrays string

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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

好读:
What is the difference between char a[] = "string"; and char *p = "string";