Например,
(const int)* someInt;
действительный код?
Если так, тот оператор, отличающийся, чем
const int* someInt;
?
Вы можете заключить любое выражение в круглые скобки, не изменяя значения. Но вы не можете сделать то же самое с типами. В частности, как указывали другие, круглые скобки в вашем коде меняют значение с объявления на приведение.
Мне это кажется верным, потому что вы можете каждый раз иметь указатель на постоянное значение.
Я не думаю, что между ними существует разница.
Вы можете сделать приведение в стиле c с любым типом внутри, но выражение, которое вы пытаетесь привести, может не быть приведено таким образом.
Вы не можете иметь произвольный тип в правой части приведения. Для выполнения преобразования необходим оператор преобразования, определяемый пользователем.
если someInt
определен как
int *someInt;
, то
(const int)* someInt;
является действительным. В противном случае вы столкнетесь с ошибкой.
Вы указываете указатель на int
и приводите результирующее значение к const int
.
И да, это заявление без задания потрачено зря.
int rtn = (const int)* someInt;