Why can you add an integer to a string literal?

前端 未结 1 1835
太阳男子
太阳男子 2020-12-04 04:18

I was messing around and noticed something strange. You can actually do \"a\" + 2 and the program compiles fine, but doesn\'t output anything. However \"a

相关标签:
1条回答
  • 2020-12-04 04:59

    "a" is actually a const char[], but it can be converted without a cast to a const char* or to a char* and when you do math on pointers it works like array subscript syntax. So you're creating a new pointer which is farther along in the string. This reference on pointer arithmetic might be useful. If you do get a char* reference to the literal, it still is undefined to modify it (from experience it might crash if in read-only page, or might change all references where it is used).

    0 讨论(0)
提交回复
热议问题