Как string хранится в памяти компьютера
Строка (string) представлена в памяти как массив символов. Из этого можно сделать вывод о том, что каждый символ хранится в памяти последовательно, друг за другом. Но, в отличии от массива, при создании строки мы не указываем максимальное число элементов.
Дело в том, что предварительно, перед записью строки в память, виртуальная машина определяет ее длину, ищет свободную область под ее размер и выделяет на один символ больше. Этот символ называют “символ конца строки”, и он выглядит как ‘\0’. Он необходим для того, чтобы понять когда символов в строке больше нет.
Чтобы получить строку из памяти, нам достаточно знать лишь адрес ячейки первого символа. Зная его, мы можем передвигаться по последующим ячейкам до того момента, пока не наткнемся на “символ конца строки”. Все, что между первым символом и ‘\0’ будет являться строкой.