标签: operator-precedence

&& || 操作员互动

我需要知道如何在语句中评估逻辑AND和OR运算符.我找到了一些试图解释它的网站,但我无法做出他们的头脑或尾巴.我知道我可以用大括号来订购它我想要的但我想知道它是如何工作的.

例如会

if( b1 && b2 || b3 )
Run Code Online (Sandbox Code Playgroud)

被评估为:

(b1 && b2) || b3 
Run Code Online (Sandbox Code Playgroud)

或作为:

b1 && (b2 || b3)
Run Code Online (Sandbox Code Playgroud)

c++ operator-precedence logical-operators

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

在C中更改运算符的优先级

由于&&的优先级更高(这是合适的adj.?)而不是||的优先级,我写了这样的东西:

if (a || b && c ){ ....
Run Code Online (Sandbox Code Playgroud)

我想程序会首先找到b && c,让我们称之为d,然后找到a || d,对吧?

我希望程序首先检查"a"语句,然后检查是否错误; 检查b和c.这样的事情可能吗?

c operators operator-precedence

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

字符串连接和比较在println语句中给出了意外的结果

我无法弄清楚以下行为,

String str1= "abc";
String str2 = "abc";

System.out.println("str1==str2 "+ str1==str2);
System.out.println("str1==str2 " + (str1==str2))
Run Code Online (Sandbox Code Playgroud)

上述声明的输出如下:

str1 == str2 true

为什么会这样?为什么输出不是如下:

str1 == str2 true

str1 == str2 true

java string operator-precedence

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

Shortcircuit Operator评估订单

main()
{
int a,b=0,c=1,d=1;
a=++b&&++c||++d;    
printf("%d %d %d",b,c,d);  //1 2 1
b=0,c=1,d=1;
a=b&&++c||++d;
printf("%d %d %d",b,c,d);  //0 1 2
}
Run Code Online (Sandbox Code Playgroud)

为什么第二个printf给出答案0 1 2而不是0 2 1?

c operator-precedence

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


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

调整矢量矢量的大小

下面是用于调整矢量矢量大小的代码块.为每行大小生成的输出打印为0?即使我将每一行调整为W,为什么会发生这种情况;

int main() {
    int H,W,i;
    cin >> H,W; // H=3,W=5;
    vector<vector<int> >v;
    v.resize(H);

    for(i=0;i<H;i++)
        v[i].resize(W);

    cout << v[1].size(); // Output is printed 0 
}
Run Code Online (Sandbox Code Playgroud)

c++ vector operator-precedence comma-operator

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

1 /(1.0/0.0)在C中评估为零

在C中评估以下表达式时,输出为零而不是无穷大.但是根据C运算符优先级规则,输出应该是无穷大.

double a=1/(1.0/0.0);
printf("a : %.18le\n", a);
Run Code Online (Sandbox Code Playgroud)

请解释一下gcc编译器如何评估这个?

c operator-precedence

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

带字符串连接的打印顺序

为什么打印以下代码?

float called long called 20.0 21
Run Code Online (Sandbox Code Playgroud)

代替

float called 20.0 long called 21
Run Code Online (Sandbox Code Playgroud)

这是代码:

public class Test5 {
    static float fun(int a) {
        System.out.print("float called ");
        return a;
    }

    static long fun(long a) {
        System.out.print("long called ");
        return a;
    }

    public static void main(String[] args) {
        System.out.println(fun(20) + " " + fun(21L));
    }
}
Run Code Online (Sandbox Code Playgroud)

java string-concatenation operator-precedence

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

分配以及职位增量

我对输出有些困惑。用Java尝试

var x = 1;
x = x++;
console.log(x); //Its output is 1
Run Code Online (Sandbox Code Playgroud)

我当时认为应该是2.,因为我要在后期增加后进行打印。有什么看法吗?

javascript operators operator-precedence post-increment

-1
推荐指数
2
解决办法
47
查看次数