Я делаю некоторые упражнения в C++, когда я наткнулся на что-то не так ясно для меня:Конкатенация строки и Int в C++
cout << "String" + 1 << endl;
выходы: Тринга
Я предлагаю это что-то с указателем арифметика, но означает ли это, что каждый раз, когда я печатаю что-то в кавычках, которые не являются частью предыдущего определенного массива, я на самом деле создаю массив символов?
The type '' String "' is 'const char *', так что да, это арифметика указателя, но вы не создаете массив, этот выпекается в секцию данных exectuble (AFAIK). – Borgleader
Вы хотите получить ответ о том, почему это произошло или как получить то, что вы хотите? – NathanOliver
'' String "' - строковый литерал статического времени жизни, и вы правильно выполняете арифметику указателя. Осторожно не добавлять больше длины строки, так как программа начнет считывать мусор и вызывать ub. – George