ВУЗ:
Составители:
Рубрика:
*((double *)point) = 3.1415926; /* приводим указатель
к типу double и выполняем операцию записи по адресу */
printf("Значение числа PI = %lf\n",c);
}
Фактически оператор программы:
*((double *)point) = 3.1415926;
означает, что в данный момент мы работаем с данными типа double. Часто
применение указателей на тип void бывает полезным.
1.4 Указатели на структурные переменные и объекты классов
В приведенных примерах были использованы указатели на базовые типы
данных языка Си. Однако использование указателей гораздо шире.
Пусть в программе объявлена структура, имя которой _BOOK_.
struct _BOOK_
{
char autor[20];
int cost;
} book, *point_book;
Оператором программы
point_book = & book;
будет инициализирован указатель адресом переменной book. Для доступа к
полям структуры через указатель используется операция "стрелка", которая в
Си программах выглядит так '->'.К примеру, поместим в поле структуры autor
фамилию автора книги:
strcpy( point_book -> autor,"ИВАНОВ И. И.");
Функция strcpy () предназначена для копирования строк. Эквивалентная, но
более длинная и потому редко используемая запись, выглядит таким образом:
strcpy( (*point_book ). autor,"ИВАНОВ И. И.");
В данном случае это запись по адресу.
В следующем примере показана возможность чтения поля структуры и
присваивания значения cost поля переменной cost_book:
int cost_book;
cost_book = point_book -> cost ;
11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »