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

标签 c++ arrays string

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

但它应该会报总线错误,为什么它会起作用?

最佳答案

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

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

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

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

关于c++ - 如果字符串是不可变的,为什么下面的代码在 turbo c++ 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425777/

相关文章:

Python 列表索引拆分和操作

java - 迷失与弦

algorithm - 颠倒单词的顺序——时间复杂度?

python - 如何在 Pandas 数据框中使用带有多个表达式的 str.contains()?

javascript - 使用 jQuery 将复杂的标点字符串拆分为大于 2 个字符的常规单词

c++ - OpenCV:从函数返回 Point 类型到 main

c++ - 的左侧预期的结构。或 .* 但它是一个结构

c++ - 什么是枚举类,我为什么要关心?

c++ - 命名空间 "std"没有成员 "sort"

C# - 在处理流之前返回内存流字节数组的效果?