Указатель — это адрес поля памяти, занимаемого программным объектом. Для хранения адресов используются переменные типа «указатель». Формат описания таких переменных — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Указатель — это адрес поля памяти, занимаемого программным объектом. Для хранения адресов используются переменные типа «указатель». Формат описания таких переменных

2017-05-22 273
Указатель — это адрес поля памяти, занимаемого программным объектом. Для хранения адресов используются переменные типа «указатель». Формат описания таких переменных 0.00 из 5.00 0 оценок
Заказать работу

следующий:

тип *имя_перем

Операции над указателями. Записывая выражения и операторы, изменяющие значения указателей, необходимо помнить главное правило: единицей изменения значения указателя является размер соответствующего ему типа. Продемонстрируем это правило на определенных выше указа­телях. Выполнение операторов

pti=pti+l; ИЛИ pti++;

изменит значение указателя pt i на 2, в результате чего он примет значение FFC2. В результате выполнения оператора pti—; значение указателя уменьшится на 2 и станет равным FFBE. Аналогично для указателей других типов:

ptc++; увеличит значение указателя на 1;

ptf++; увеличит значение указателя на 4.

Использование указателей для передачи параметров функции. Рассматривая ранее правила использования функций, мы обращали внимание на то, что в языке Си возможна только односторонняя передача значений фактических параметров из вызывающей программы к формальным параметрам вызываемой функции. Возвращаемое значение несет сама функция, используемая в качестве операнда в выражении. Отсюда, казалось бы, следует неукоснительное правило: в процессе выполнения функции не могут изменяться значения переменных в вызывающей программе. Однако это правило можно обойти, если в качестве параметров функции использовать указатели.

Символьные строки

Символьные строки хранят такую информацию, как имена файлов, названия книг, имена служащих и другие символьные сочетания. Большинство программ на C++ широко используют символьные строки. Далее вы узнаете, что в C++ символьные строки хранятся в массиве типаchar, который заканчивается символом NULL (или ASCII 0). В данном уроке символьные строки рассматриваются более подробно. Вы узнаете, как хранить и обрабатывать символьные строки, а также как использовать функции библиотеки этапа выполнения, которые манипулируют символьными строками. К концу этого урока вы освоите следующие основные концепции:

Чтобы объявить символьную строку, вы должны объявить массив типа char,

Чтобы присвоить символы символьной строке, ваши программы просто присваивают символы элементам массива символьных строк.

Программы C++ используют символ NULL (ASCII 0), чтобы отметить последний символ строки.

C++ позволяет вашим программам инициализировать символьные строки при их объявлении.

Программы могут передавать символьные строки в функцию, как и любой массив.

Большинство библиотек этапа выполнения C++ обеспечивают набор функций, которые управляют символьными строками.

Программы на C++ хранят символьные строки как массив типа char.Большинство программ широко используют символьные строки. Экспериментируйте с каждой программой, представленной в этом уроке, чтобы освоиться с символьными строками. Вы обнаружите, что работа с символьными строками подобна работе с массивами, описанной в уроке 16.

Строки как параметр функции

Передача символьной строки в функцию подобна передаче любого массива в качестве параметра. Внутри функции вам нужно просто указать тип массива (char) и левую и правую скобки массива. Вам не надо указывать размер строки. Например, следующая программа SHOW_STR.CPP использует функцию show_string для вывода символьной строки на экран:

#include <iostream.h>

void show_string(char string[])

{
cout << string << endl;
}

void main(void)

{
show_string("Привет, C++!");
show_string("Учусь программировать на C++");
}

Как видите, функция show_string трактует параметр символьной строки как массив:

void show_string(char string[])

Так как символ NULL указывает конец строки, функция не требует параметр, который задает количество элементов в массиве. Вместо этого функция может определить последний элемент, просто найдя в массиве символ NULL.

Как вы уже знаете, функции C++ часто используют символ NULL для определения конца строки. Следующая программа STR_LEN.CPP создает функцию с именем string_length,которая ищет символ NULL в строке для определения количества символов, содержащихся в строке. Далее функция использует оператор return для возврата длины строки вызвавшей функции. Программа передает несколько различных символьных строк в функцию, отображая длину каждой из них на экране:

#include <iostream.h>

int string_length(char string[])

{
int i;
for (i = 0; string[]!= ""; i++); // Ничего не делать, но перейти к
// следующему символу return(i); Длина строки
}

void main(void)

{
char title[] = "Учимся программировать на языке C++";
char lesson[] = "Символьные строки";
cout << "Строка " << title << " содержит " << string_length(title) << " символов" << endl;
cout << "Строка " << lesson << " содержит " << string_length(lesson) << " символов"<< endl;
}

Как видите, функция запускается с первого символа строки (элемент 0) и затем исследует каждый элемент до тех пор, пока не встретит NULL. Рассматривая программы на C++, вы встретите целый ряд функций, которые подобным образом просматривают символьные строки в поисках символа NULL.


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.