我在乱搞,发现一些奇怪的东西。你实际上可以做"a" + 2
并且程序编译得很好,但是没有输出任何东西。但是"a" + 32
说array subscript is above array bounds
。
答案 0 :(得分:5)
“a”实际上是一个const char [],但它是can be converted without a cast to a const char*或to a char*,当你对指针进行数学运算时,它就像数组下标语法一样工作。所以你要创建一个新的指针,它在字符串中更远。这个reference指针算法可能很有用。如果你确实获得了对文字的char *引用,那么修改它仍然是未定义的(根据经验,如果在只读页面中它可能会崩溃,或者可能会更改使用它的所有引用)。