小编Ans*_*shu的帖子

有人可以解释为什么 sizeof() 用一元运算符返回这些值吗?

#include <stdio.h>

int main() {
    int a;
    char b;
    short int c;
    double d;
    printf("%d %d %d %d\n", sizeof(a), sizeof(b), sizeof(c), sizeof(d));
    printf("%d %d %d %d\n", sizeof(+a), sizeof(+b), sizeof(+c), sizeof(+d));
    printf("%d %d %d %d\n", sizeof(-a), sizeof(-b), sizeof(-c), sizeof(-d));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

32 位编译器输出:

4 1 2 8
4 4 4 8
4 4 4 8

如果我更改 . 中的符号,输出相同sizeof(),例如sizeof(-a). 我想知道为什么会发生这种情况。+-运算符是否在促进数据类型?

c operators sizeof unary-operator

4
推荐指数
1
解决办法
80
查看次数

标签 统计

c ×1

operators ×1

sizeof ×1

unary-operator ×1