直到现在我都相信一元运算+
符是没有用的。
但是后来我遇到了以下示例:
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
吗?