Унарный + оператор выполняет преобразования типов?
До сих пор я верил, что унар+
оператор.
Но потом наткнулся на следующий пример:
char ch;
short sh;
int i;
printf("%d %d %d",sizeof(ch),sizeof(sh),sizeof(i)); // output: 1 2 4
printf("%d %d %d",sizeof(+ch),sizeof(+sh),sizeof(i)); // output: 4 4 4
Значит ли это+
делает преобразование типов здесь?
Потому что он ведет себя так же, как следующий
printf("%d %d %d",sizeof((int)ch),sizeof((int)sh),sizeof(i)); // output: 4 4 4
Это заставляет меня думать+
делает преобразование типов.
Но потом я примеряюdouble
double f;
printf("%d %d",sizeof(+f),sizeof((int)f),sizeof(f)); // output: 8 4 8
Это заставляет меня переосмыслить+
оператор.
Итак, мой второй вопрос: один ли+
Оператор имеет особый эффект вsizeof
оператор?