小编Aka*_*rma的帖子

评估c中if语句中的表达式

假设我写了一个代码:

int main()
{
    int i,a=2147483647;

    if((2*a)<0)
        printf("hello");
    else
    printf("world");
}
Run Code Online (Sandbox Code Playgroud)

输出是世界的.但对于 :

int main()
{
    int i,a=2147483647;
    if((a+a)<0)
        printf("hello");
    else
        printf("world");
}
Run Code Online (Sandbox Code Playgroud)

输出是hello.

这是怎么回事?
存储在内存中的2*a和a + a的值在哪里(内存位置的数据类型是什么?)

c

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

标签 统计

c ×1