为什么可以在字符串文字中添加整数?

时间:2014-08-14 02:32:52

标签: c++

我在乱搞,发现一些奇怪的东西。你实际上可以做"a" + 2并且程序编译得很好,但是没有输出任何东西。但是"a" + 32array subscript is above array bounds

1 个答案:

答案 0 :(得分:5)

“a”实际上是一个const char [],但它是can be converted without a cast to a const char*to a char*,当你对指针进行数学运算时,它就像数组下标语法一样工作。所以你要创建一个新的指针,它在字符串中更远。这个reference指针算法可能很有用。如果你确实获得了对文字的char *引用,那么修改它仍然是未定义的(根据经验,如果在只读页面中它可能会崩溃,或者可能会更改使用它的所有引用)。