Ответ 1
У С++ есть оператор мощности, он написал pow(x, y)
.
Первоначально C был разработан с учетом системного программного обеспечения и
не было необходимости в силовом операторе. (Но он
побитовые операторы, такие как &
и |
, которые отсутствуют в партии
других языков.) Было некоторое обсуждение добавления одного
во время стандартизации С++, но окончательный консенсус был больше
или меньше:
-
Это не могло быть
^
, потому что приоритет был неправильным (и конечно, имея2. ^ 8 == 256.
, но2 ^ 8 == 10
не очень приятный). -
Это не может быть
**
, потому что это нарушит существующие программ (которые могут иметь что-то вродеx**p
, сx
aint
иp
anint*
). -
Это может быть
*^
, потому что эта последовательность в настоящее время не законна в C или С++. Но это все равно потребует введения дополнительный уровень приоритета. -
C и С++ уже имели достаточно специальных токенов и уровней приоритет, и после обсуждений с сообществом численностей, был сделан вывод о том, что в действительности не было ничего плохого с
pow(x, y)
.
Итак, С++ оставил вещи такими, какие они есть, и это, похоже, не имеет вызвало любые проблемы.