为什么可以向字符串字面值添加整数?

Why can you add an integer to a string literal?

本文关键字:整数 添加 字面值 可以向 字符串 为什么      更新时间:2023-10-16

我在闲逛的时候发现了一些奇怪的事情。你可以做"a" + 2,程序编译得很好,但是不输出任何东西。然而,"a" + 32表示array subscript is above array bounds

"a"实际上是一个const char[],但它可以在不强制转换为const char*或char*的情况下进行转换,当你对指针进行数学运算时,它的工作原理类似于数组下标语法。你在创建一个新的指针它在字符串中更远的地方。这个关于指针算术的引用可能有用。如果您确实获得了对文字的char*引用,那么修改它仍然是未定义的(根据经验,如果在只读页面中它可能会崩溃,或者可能会更改使用它的所有引用)。