标签: operator-precedence

PHP操作顺序

我想知道PHP如何执行它.运作顺序

addslashes(strip_tags($record['value']));
Run Code Online (Sandbox Code Playgroud)

addslashes称为first或strip_tags?

换句话说,它是从内到外还是从外部执行?

php operator-precedence

0
推荐指数
2
解决办法
1108
查看次数

c-faq和我的编译器之间的矛盾

C-FAQ说的代码:

int i = 7;
printf("%d\n", i++ * i++);
Run Code Online (Sandbox Code Playgroud)

打印49.无论评价顺序如何,都不应该打印56?当我在Turbo C 3.0编译器上运行此代码时,它给出了56的输出.为什么会出现矛盾?

c operator-precedence

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

Java模数运算符 - 为什么结果出乎意料?

我理解模数17/12 = 5.

为什么4+17 % 2-1价值4,(4+17) % 2-1价值是0

java expression operator-precedence modulus

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

运算符优先级问题

O/p出现为x = 2,y = 1,z = 1,这与运算符优先级不一致.我在Turbo c ++编译器上运行它:

void main()
{
    int x,y,z,q;
    x=y=z=1;
    q=++x || ++y && ++z;
    printf("x=%d y=%d z=%d",x,y,z);
}
Run Code Online (Sandbox Code Playgroud)

c operator-precedence turbo-c

0
推荐指数
3
解决办法
1213
查看次数

Turbo C++和GCC(在Windows上使用代码块)以不同方式评估相同的三元表达式

我有这个表达

(*p % 3 != 0) ? *p = (*p) + 1 : *p = (*p) + 2;
Run Code Online (Sandbox Code Playgroud)

在Turbo C++中,如果*p为11,则计算结果为14;如果*p为33,则计算结果为35

在GCC(Windows)中,它分别评估为12和35,这是预期的

括号为以下格式时,它工作正常:

(*p % 3 != 0) ? (*p = (*p) + 1) : (*p = (*p) + 2); 
Run Code Online (Sandbox Code Playgroud)

这种差异有什么解释吗?我猜它归结为编译器使用的优先顺序的差异,但无法确定根本原因

c++ gcc turbo-c++ operator-precedence

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

Java如何评估此声明?

我在if else语句中有这个表达式

if (row % 2 == 0 && col % 2 == 0 || row % 2 == 1 && col % 2 == 1) {
    return 0;
}
else {
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

其行为与预期相同,当行和列均为偶数或两者都为奇数时返回0.困惑我的是Java如何不读它

(row % 2 == 0 && (col % 2 == 0 || row % 2 == 1 && col % 2 == 1))
Run Code Online (Sandbox Code Playgroud)

Java如何评估没有括号的语句?

java evaluation expression operator-precedence

0
推荐指数
2
解决办法
136
查看次数

如何检查多个列是否为空或NULL

我正在尝试编写一个SELECT语句,它将返回两列为空或NULL的所有行.两列都需要为空或NULL.

我在PHPMyAdmin中尝试了这个查询 - 但是,它仍然返回一些行,其中任一列的值为'on'.

SELECT * 
        FROM product
        WHERE isstock IS NULL 
                   OR isstock = ''
        AND
        iscon IS NULL 
                   OR iscon = ''
Run Code Online (Sandbox Code Playgroud)

谁能解释我哪里出错?

谢谢,

mysql sql operator-precedence

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

是否可以保证逻辑如何在Java中进行分组?

boolean A = true;
boolean B = false;
boolean C = true;


if(A == true && B == true || C == true);
Run Code Online (Sandbox Code Playgroud)

我有理由认为这会被评估为假吗?(还是真的?)

我知道这里最好的事情是将两个params包装在他们自己的parens中,但我对Java VM很好奇,如果它是一致的(特别是在Delvik的情况下).是否看到B是假的并且退出(因为&&似乎要求它是真的,如果从左到右阅读它)或者它本身将两个项目分组在||的两侧 并继续寻找C是否为真(在这种情况下,整个陈述最终为真).

java logic android operator-precedence

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

在不使用C中的第三个变量的情况下交换两个变量的值?

我找到了以下代码片段:

#include <stdio.h>

int main(void) {
    int x=10,y=15;
    x=x+y-(y=x);
    printf("x=%d y=%d",x,y);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它实际上交换了变量

任何人都可以解释一下代码如何交换变量?

我认为括号将首先执行然后表达式导致

x=x+y-y;
Run Code Online (Sandbox Code Playgroud)

c expression operator-precedence sequence-points

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

Java运算符优先级问题的简单方程式

我试图在Java中实现一个简单的方程式,但显然由于操作符优先级而得到了错误的答案,这是我无法理解的.

等式是:

NewMean =((N-1)/ N)*OldMean +(Xn/N)

在一个简单的例子中:N = 6; OldMean = 6; Xn = 16

所以,NewMean = 5/6*6 + 16/6 = 7.6667 (正确答案)

但在Java上的代码实现中我得到了错误的答案(2.6665):

double NewMean = ((N-1)/N)*oldMean + (Xn/N);
Run Code Online (Sandbox Code Playgroud)

java operator-precedence

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