Массивы текстовых строк

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

 

char arr_str [30] [21];

 

Этот массив содержит 30 строк. Каждая строка может содержать текст из максимум 20 символов + нулевой символ.

Для того чтобы обратиться к некоторой строке этого массива достаточно указать только первый индекс. Например:

 

strcpy (arr_str [10] , “Иванов”);

cout << arr_str [10] << endl;// На экран выведено “Иванов”

Инициализация такого массива:

 

char arr_str [3] [21] = {“Иванов”, “Петров”, “Сидоров”};

cout << arr_str [1] << endl;// На экране “Петров”

 

или так:

 

char arr_str [ ] [21] = {“Иванов”, “Петров”, “Сидоров”};

cout << arr_str [2] << endl;// На экране “Сидоров”

 

Для получения доступа к отдельным символам строк необходимо указывать два индекса, как в обычном двумерном массиве:

 

cout << arr_str [2] [2]; // На экране буква ‘д’ из строки “Сидоров”

Указатели

 

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

Указатели

Понятие указателя

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

 

                                       
                                       
 
                                         

 

При определении, например, некоторой переменной, она располагается в памяти по определенному адресу и занимает столько ячеек, сколько требует тип этой переменной. Пусть, например, имеется переменные int A = 2351 и double B = 3.1 и пусть они располагаются в памяти так:

 

      А = 2351 B = 3.14          
                                       
 
                                                                               

 

Говорят, что переменная А располагается по адресу 101 и занимает 4 байта, а переменная B имеет адрес 105 и занимает 8 байт памяти.

Для получения адреса какого-либо программного объекта используется оператор &. Например, если выполнить фрагмент следующей программы (в предположении, что переменные A и B располагаются в памяти, как это показано на предыдущем рисунке):

 

int A = 2351;

double B = 3.14;

cout << “Значение переменной А: ” << A << endl;

cout << “Адрес переменной А: ” << &A << endl;

cout << “Значение переменной В: ” << В << endl;

cout << “Адрес переменной В: ” << &В << endl;

получим следующий результат:

 

Значение переменной А: 2351

Адрес переменной А: 101

Значение переменной В: 3.14

Адрес переменной В: 105

 

Правда, значения адресов переменных будут выведены в шестнадцатеричном формате.

 

Указатели – это тоже обычные переменные, но они служат для хранения адресов памяти.

 

Указатели определяются в программе следующим образом:

 

<тип данных> *<имя переменной>

 

Здесь <тип данных> определяет так называемый базовый тип указателя.

<Имя переменной>является идентификатором переменной-указателя.

Признаком того, что это переменная указатель, является символ *, располагающийся между базовым типом указателя и именем переменной-указателя.

Например:

 

int *p1;

double *p2;

 

Здесь определены две переменные-указатели (или просто – два указателя). Указатель p1 является переменной-указателем на базовый тип int(или, как говорят, переменная p1 указывает на int- значение), а указатель p2 указывает на double– значение.

Иными словами, переменная p1 предназначена для хранения адресов участков памяти, размер которых соответствует типу int(4 байта), а переменная p2 - для хранения адресов участков памяти, размер которых соответствует типу double(8 байт).

Формально указатели представляют собой обычные целые значения типа intи занимают в памяти 4 байта не зависимо от базового типа указателя. Значения указателей при их выводе на экран представляются как целые значения в шестнадцатеричном формате.








Дата добавления: 2019-02-07; просмотров: 270;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.