C++ указатели

Опасайтесь программистов, носящих с собой отвертки!
Леонард Брендвайн.

Здесь вы можете скачать парочку интересных андроид приложений

Указатели

В языке C++ существуют специальные переменные, которые предназначены для хранения адресов других переменных. Эти переменные называются указателями

Значением указателя является беззнаковое целое число, которое сообщает где размещена переменная, но ничего не говорит о самой переменной. Например, переменную a на рисунке выше, можно рассматривать как переменную с адресом 100.

Указатели в общем виде объявляется так:

type* a,*b;

Где type– тип переменной, на которую указывает указатель; a,b– имена указателей. Перед каждым именем ставится символ *.

Например, указатель на нашу переменную a можно объявить так:

double* a;
или
double *a;
или
double * a;

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

Адрес переменной можно взять с помощью операции взятия адреса. Например:

double x,*y;
x=3.14;
y=&x;

Теперь переменную x можно рассматривать как:

1) Переменную с именем x;
2) Переменную, на которую указывает указатель y.

Изменить значение, расположенное по адресу, на который указывает указатель y можно так:

*y=2.78;

Эта запись эквивалентна записи:

x=2.78;

Оператор new

Оператор new выделяет в ОП место под создаваемую переменную и записывает адрес этой переменной в переменную указателя. В общем виде он записывается так:

a=new type;

Где a– имя указателя, type– тип переменной указателя.

Такие переменные (созданные с помощью оператора new) называются динамическими.

Пример:

#include <iostream>
using namespace std;
void main()
{setlocale(LC_ALL,"Russian");//Русификация
 double *a;//Объявляем указатель
 //Выделяем ОП под переменную, на которую будет указывать a:
 a=new double;
 //Присваиваем значение переменной, которая находится по адресу a:
 *a=3.14;
 cout<<"\n Значение переменной, на которую указывает a="<<*a<<"
её адрес="<<a; cout<<endl; }

Результат работы программы:



На главную
C++ новичку     Алфавит и лексемы     Операции в C++     Библиотеки     Потоки ввода- вывода     Разветвляющийся вычислительный процесс
     Циклы    Указатели     Основы работы с динамической памятью     Работа с файлами     Некоторые типичные функции

Разработчик сайта: Филатов Максим

Hosted by uCoz