иногда мы используем этот тип кода в нашем программировании на языке C.
char *p = "Sam";
Здесь адрес постоянной строки символов «Сэм» будет храниться в указателе char p. теперь здесь
Я хочу спросить, где будет храниться Сэм?
В стандарте это не указывается. Как правило, строковый литерал ( "Sam"
) будет храниться в разделе данных на странице только для чтения.
Что касается p
, это зависит от того, является ли оно автоматическим или статическим.
Строка «Сэм» обычно хранится в глобальной памяти в том же регионе, что и глобальные константы.
Однако, если вы это сделали:
char p[] = "Sam";
Тогда это будет в стеке. (как инициализатор массива)