что означает это строка кода *(*(p = new double*) = new double) = 2;
*(*(p = new double*) = new double) = 2;
Начнем с внутренней скобки
p = new double*
В переменную p записывается адрес памяти, выделенной для указателя double*, и само выражение имеет значение этого указателя.
*(p = new double*) = new double
Здесь оно разыменовывается и по адресу, который хранится в p, записывается значение указателя, выделенного под переменную double, каковое значение - указателя на double - и возвращается, а затем разыменовывается и в него уже записывается значение 2...
Т.е. картинка выглядит примерно так:
Если расписать элементарные действия по отдельности, то получится
p = new double *;
*p = new double;
**p = 2;
У вас все то же самое "свёрнуто" в одно выражение.
Разумеется, все это имеет смысл только если переменная p объявлена заранее и объявлена с правильным типом.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей