Как отправить e.target второе значение?

Причина, по которой const может быть добавлена ​​только на один уровень, является тонкой и объясняется Вопросом 11.10 в comp.lang.c FAQ .

Вкратце, рассмотрите этот пример, тесно связанный с вашим:

const int i;
int *p;
int const **z = &p;
*z = &i;
/* Now p points to i */

C избегает этой проблемы, только разрешая присваивать отбрасывать квалификаторы на первом указанном уровне (поэтому присвоение z здесь не допускается).

Ваш конкретный пример не страдает от этой проблемы, потому что const второго уровня означает, что присвоение *z не будет разрешено в любом случае. C ++ допустил бы в этом конкретном случае, но более простые правила C не различают ваш случай и пример выше.

0
задан Alexiostigrahauda 17 January 2019 в 04:45
поделиться