Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Строковые указатели являются не строками, а указателями, т.е. адресами, которые определяют местонахождение первого символа строки, сохраненной где-то в памяти. Строковые указатели объявляются как char * или, чтобы операторы не могли изменить адресуемые ими данные, как const char *
Вот несколько примеров:
char *stringPtr; /* Строковый указатель */
const char *fixedString; /* Указатель на фиксированную строку */
char far •stringPtr; /* Дальний указатель на строку */
В строковых указателях нет ничего особенного - они просто указывают на массив значений типа char и ведут себя аналогично другим указателям (см. главу 5). Существует много функций, которые обрабатывают строки, адресуемые строковыми указателями, и объявления char * очень распространены.
Чтобы выделить память в куче для строкового указателя, вызовите функцию malloc() и задайте размер, в который не забудьте включить один дополнительный байт для завершающего нуля. Оператор
stringPtr = (char *) malloc(81);
резервирует 81 байт памяти в куче и присваивает указателю stringPtr адрес первого байта. Строка может содержать до 80 символов плюс завершающий нуль. По окончании работы со строкой вызовите функцию free(), чтобы вернуть зарезервированную память обратно в кучу, сделав ее доступной для будущих вызовов функции malloc():
free(stringPtr);
Вспомните, что массивы и указатели эквивалентны. Чтобы обратиться к отдельным символам строки, нужно использовать индексные выражения. Например, чтобы отобразить третий символ в строке, адресуемой указателем stringPtr, можно написать:
printf("%c", stringPtr[2]);
При подобном индексировании строк лишь на вас лежит ответственность за то, что в указанном месте находится допустимый символ. Если адресуемая строка содержит меньше трех значащих символов, то это выражение, вероятно, отобразит некорректную информацию.
Дата публикования: 2015-01-23; Прочитано: 216 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!