语句中的C#3操作数
我正在写下面的代码语句中的C#3操作数,c#,C#,我正在写下面的代码 int a = 10; int b = 12; int c = 14; int e = 18; bool d = false; a = b = c; //Output Console.WriteLine(a); //14 Console.WriteLine(b); //14 Console.WriteLine(c); //14 d = a != b; //Output Console.WriteLine(d); //False
int a = 10;
int b = 12;
int c = 14;
int e = 18;
bool d = false;
a = b = c; //Output
Console.WriteLine(a); //14
Console.WriteLine(b); //14
Console.WriteLine(c); //14
d = a != b; //Output
Console.WriteLine(d); //False
d = a == b; //Output
Console.WriteLine(d); //True
a = b = c = e; //Output
Console.WriteLine(a); //18
Console.WriteLine(b); //18
Console.WriteLine(c); //18
Console.WriteLine(e); //18
我无法理解,它是如何工作的
我们知道,在C#中,如果我们使用两个以上的操作数和一个以上的没有括号的运算符,即(and),那么
情况:1如果运算符的优先级不同
该操作将根据运算符优先级执行
例如,2+2/2结果将是3,因为语句将是2+(2/2)
但如果两个或两个以上运算符的运算符优先级相同,则如何处理
我无法理解,它是如何工作的?它是什么类型的操作员
打电话
=
是
a=b=c=e代码>这是从右到左完成的分配。因此,e
所拥有的现在由a,b,c持有
赋值运算符(=)存储其右侧操作数的值
在用左手表示的存储位置、属性或索引器中
并返回值作为其结果
如果您试图比较值,则应使用=
。()
我无法理解,它是如何工作的?它是什么类型的操作员
打电话
=
是
a=b=c=e代码>这是从右到左完成的分配。因此,e
所拥有的现在由a,b,c持有
赋值运算符(=)存储其右侧操作数的值
在用左手表示的存储位置、属性或索引器中
并返回值作为其结果
如果您试图比较值,则应使用=
。()=
是一个逻辑运算符,如果值相等,则返回true
=
是赋值运算符,总是从右向左解析
=如果比较的值不相等,则代码>返回true
是一个单边求反运算符,它取其右侧的布尔值并返回oposite。==
是一个逻辑运算符,如果值相等,则返回true
=
是赋值运算符,总是从右向左解析
=如果比较的值不相等,则代码>返回true
是一个单边求反运算符,它取其右侧的bool值并返回oposite。这些语句从右到左求值。
同样,b=c返回b的新值
对于a=b=c
首先计算b=c=>b=c=14
现在b是14,表达式变成a=14
d=a的情况也是如此b
a=14,b=14,a!=b返回false
新表达式为d=false
希望您现在能理解。这些语句是从右向左计算的。
同样,b=c返回b的新值
对于a=b=c
首先计算b=c=>b=c=14
现在b是14,表达式变成a=14
d=a的情况也是如此b
a=14,b=14,a!=b返回false
新表达式为d=false
希望你现在明白了。我想这里唯一不清楚的是。您应该了解,它返回指定的值:
赋值运算符(=)存储其右侧操作数的值
在用左手表示的存储位置、属性或索引器中
并返回值作为其结果
也就是说,b=c
将c
的值赋值给局部变量b
,并返回赋值作为结果。然后a=b=c
将此返回值赋给局部变量a
,并返回指定值
为了清楚起见,添加括号以显示操作顺序:
a = (b = c); // assign c value to b, then assign value of b to a
d = (a != b); // assign value of a and b comparison to d
d = (a == b); // same as above
a = (b = (c = e)); // everything becomes equal to e
未来阅读:我认为这里唯一不清楚的事情是。您应该了解,它返回指定的值:
赋值运算符(=)存储其右侧操作数的值
在用左手表示的存储位置、属性或索引器中
并返回值作为其结果
也就是说,b=c
将c
的值赋值给局部变量b
,并返回赋值作为结果。然后a=b=c
将此返回值赋给局部变量a
,并返回指定值
为了清楚起见,添加括号以显示操作顺序:
a = (b = c); // assign c value to b, then assign value of b to a
d = (a != b); // assign value of a and b comparison to d
d = (a == b); // same as above
a = (b = (c = e)); // everything becomes equal to e
未来阅读:在C#中,如果使用两个以上的操作数和一个以上的运算符,而不使用任何括号,即(and),则
情况:1如果运算符的优先级不同
该操作将根据运算符优先级执行
e、 g.2+2/2结果将是3,因为语句将是2+(2/2)
情况2:当运算符优先级相同时
它是从右向左处理的
e、 g int a、b、c、d、e
a=b=c=d=e表示(a=(b=(c=(d=e)))
或
如果a、b、c、d、e是操作数,W、X、Y、Z是运算符
然后a W b X c Y d Z e表示(a W(b X(c Y(d Z e)))在c#中,如果使用的是两个以上的操作数和一个以上的运算符,没有任何括号,即(and),那么
情况:1如果运算符的优先级不同
该操作将根据运算符优先级执行
e、 g.2+2/2结果将是3,因为语句将是2+(2/2)
情况2:当运算符优先级相同时
它是从右向左处理的
e、 g int a、b、c、d、e
a=b=c=d=e表示(a=(b=(c=(d=e)))
或
如果a、b、c、d、e是操作数,W、X、Y、Z是运算符
然后awbxcydze表示(aw(bx(cy(dze)))有三种操作