мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| c:c_ultimate_guide:strings [2025/10/10 14:45] – radi0dev | c:c_ultimate_guide:strings [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 35: | Строка 35: | ||
| char abc[2] = " | char abc[2] = " | ||
| </ | </ | ||
| + | |||
| + | ===== Строка как указатель ===== | ||
| + | |||
| + | Но в языке Си также для представления строк можно использовать [[pointers|указатели]] на тип char: | ||
| + | <code c> | ||
| + | #include < | ||
| + | | ||
| + | int main(void) { | ||
| + | char *hello = "Hello METANIT.COM!"; | ||
| + | printf(" | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Заданные таким образом строки __изменять нельзя__, | ||
| + | |||
| + | В языке Си для работы со строками применяется такой механизм как //string interning// или // | ||
| + | |||
| + | Указатель на строковой литерал содержит адрес первого бита литерала в этой секции неизменяемых данных | ||
| + | |||
| + | < | ||
| + | Если два указателя с разными идентификаторами будут ссылаться на одинаковые строковые литералы - они будут ссылаться на один и тот же адрес в памяти. | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Как и любому указателю, | ||
| + | </ | ||