Программирование на языке С. Наместников С.М. - 16 стр.

UptoLike

Составители: 

16
int* pt1;
double* pt2;
pt1 = (int *)pt2;
Язык С допускает инициализацию указателя строкой, т.е. будет верна
следующая запись:
char* str = “Лекция”;
Здесь задается массив символов, содержащих строку «Лекция» и адрес
этого массива передается указателю str. Таким образом, получается, что есть
массив, но нет его имени. Есть только указатель на его адрес. Подобный подход
является удобным, когда необходимо задать массив строк. В этом случае
возможна такая запись:
char* text[] = {«Язык С++ имеет»,
«удобный механизм»,
«для работы с памятью.»};
При таком подходе задается массив указателей, каждый из которых
указывает на начало соответствующей строки. Например, значение *text[0]
будет равно символуЯ’, значение *text[1] – символууи значение *text[2] –
символуд’. Особенность такого подхода состоит в том, что здесь задаются три
отдельных одномерных массива символов никак не связанных друг с другом.
Каждый массивэто
отдельная строка. В результате не расходуется лишний
объем памяти характерный для двумерного массива символов
Язык С также позволяет инициализировать указатели на структуры.
Допусти, что имеется структура
struct tag_person {
char name[100];
int old;
} person;
и инициализируется следующий указатель:
struct tag_person* pt_man = &person;
В этом случае, для доступа к элементам структуры можно использовать
следующий синтаксис:
(*pt_man).name;
pt_man->name;
Последний вариант показывает особенность использования указателя на
структуры, в котором для доступа к элементу используется операция ->. Данная