Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
С указателями связаны два специальных оператора: & и *. Обе эти операции унарные, т.е. имеют один операнд, перед которым они ставятся. Операция & соответствует действию “взять адрес”. Операция * соответствует словам “значение, расположенное по указанному адресу”. Например:
int y=5;
int *py;
py=&y;
Здесь оператор py=&y; присваивает адрес переменной у указателю py. Говорят, что переменная py указывает на y. Оператор * обычно называют оператором косвенной адресации, или операцией разыменования, возвращающей значение объекта, на который указывает ее операнд (т.е. указатель). Например, оператор printf("%d\n",*py); выводит на экран значение переменной у, а именно 5. Использование * указанным способом позволяет обеспечить доступ к величине, адрес которой хранится в указателе.
При объявлении переменной символ * служит признаком указателя, а при реализации * служит знаком использования данных по адресу, если стоит перед указателем.
Пример. Использование операций & и *.
#include <stdio.h>
void main()
{
int a; // a – целое число
int *pa; // pa – указатель на объект типа int
a=7;
pa=&a; // pa устанавливаем равным адресу переменной а
printf("Адрес a: %d Значение pa: %d\n", &a, pa);
printf("Значение a: %d Значение *pa: %d\n", a, *pa);
}
Результаты работы программы:
Адрес a: 1245052 Значение pa: 1245052
Значение a: 7 Значение *pa: 7
Программа демонстрирует операцию с указателями. В программе показано, что адрес переменной а и значение указателя ра идентичны, а операция разыменовывания указателя *pa выводит на экран значение переменной а. Операции & и * взаимно дополняют друг друга.
Пример. Использование операций & и *.
int х=1, у=2;
int *ip;
ip=&x; // ip указывает на x
y=*ip; // y теперь равен 1
*ip=0; // x теперь равен 0
Дата публикования: 2015-01-23; Прочитано: 293 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!