Другие языки программирования и технологии

Что обозначают следующие директивы в С++. double a; double *a; double &a;

double a; // объявили переменную типа double

double * a; // объявили указатель на double, куда указывает непонятно, не инициализирован, а надо! Поэтому лучше сначала так.. .
double * a = NULL;
// а после так.. .
double x = 25.36;
a = &x; // теперь по указателю a содержится адрес переменной x
// Если так.. .
double y;
y = *a; // Теперь y равен 25.36, потому-что разыменовали адрес и взяли, тем самым, то значение которое хранилось по этом адресу.
// Можно и по-другому.. .
a = new double; // Теперь 32-разрядная операционная система выделила в оперативной памяти подряд 8 байт, а указатель содержит адрес первого из них.
// Ну ещё можно и массив типа double объявить.. .
int size;
cin >> size;
a = new double [size]; // Готово!

double &a; // так не бывает!! !
// Бывает так.. .
double x = 5.5;
double &a = x; // Это ссылка, ещё одно имя переменной, поэтому обязательно должна быть этой или любой другой однотипной переменной инициализирована. В данном случае теперь a всегда x, и если.. .
double y = 8.5;
a = y; // ...то и x равно по значению y, то есть 8.5
Николай Лавров
Николай Лавров
67 730
Лучший ответ
Языки
Объявление вещественной переменной a;
Объявление указателя a на вещественную переменную;
Взятие адреса вещественной переменной a.
веществ. переменная, указатель на веществ. переменную, ссылка на веществ. пременную