请大神解答一个关于C++的程序

图片说明

你的这个结果是"不可预见的"
"m"是常量字串,而s2[1]是字符,也就是一个可扩展的int值
常量串+int,它是一个指针的运算
若"m"的地址为
0x489001 加上 s2[1]后
地址为:
0x489067
你的s1等于指向0x489067地址的内容
所以结果可能是任意的,也可能是内存出错

为什么常量串+int,它是一个指针的运算

s2[1]是char('f'),ascii码是102,"m"却是一个字符串,这个编译器就应该报错,你在逗我 ???