标签: compound-assignment

C++中"+ ="的含义和名称是什么?

我是C++的新手,我一直在阅读和编写自己的一些代码.我不时会看到这些操作员,如果这是正确的用词吗?

+= // Not sure what it means
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:他们的意思/做什么,他们叫什么?

为了进一步参考,我想知道它们被称为什么,所以我可以很容易地查找它(仅仅搜索"+ =",例如什么也没有产生).

编辑:对于其他不知道其含义的人(或者在我的情况下知道这些的名称),我发现这个维基百科链接可能对其他人很方便:http://en.wikipedia.org/wiki/Operators_in_C_and_C% 2B%2B

c++ operators compound-assignment

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

or-assignment运算符(| =)如何工作?(C#)

我已经看到文档和答案(1) (2)试图解释| =运算符是什么以及它是如何工作的,虽然它在基本层面上有意义...我不太明白为什么或它如何实现它的功能.

解释说这a |= b相当于a = a | b,但我不知道如何评估是否给出a自身的值(a)或值b.根据我的理解,"或"意味着它可以是两件事之一,但没有具体说明它是两件事中的哪一件.

在Visual Studio中,我使用了一个名为Refactoring Essentials的扩展,它建议我用一个带有| =运算符的行替换我的一些代码,虽然代码在那里与运算符一起使用,但我对它如何完成它感到很遗憾,这促使我尝试在线研究它(因此,问这个问题).

我的代码来自

if (MessageBox.Show("Are you sure you want to cancel this operation?", "Confirm Cancel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation, MessageBoxResult.No) == MessageBoxResult.No)
{
    e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

e.Cancel |= MessageBox.Show("Are you sure you want to cancel this operation?", "Confirm Cancel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation, MessageBoxResult.No) == MessageBoxResult.No;
Run Code Online (Sandbox Code Playgroud)

它仍然有效.虽然我猜这e.Cancel是根据评估确定的MessageBox.Show(...) == MessageBoxResult.No,但我不知道为什么在那里需要| =运算符.为什么不使用标准赋值(=)运算符,因为表达式的结果是布尔值并 …

c# refactoring operators assignment-operator compound-assignment

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

更好的方式来写'分配A或如果不可能 - B'

所以,在我的代码中,我有一个字典,我用来计算我以前没有知道的项目:

if a_thing not in my_dict:
    my_dict[a_thing] = 0
else:
    my_dict[a_thing] += 1
Run Code Online (Sandbox Code Playgroud)

显然,我不能增加一个尚不存在的值的条目.出于某种原因,我有一种感觉(在我仍然缺乏Python经验的大脑中)可能存在更多的Pythonic方法,例如,一些构造允许将表达式的结果分配给某个东西,如果不可能的话否则在一个声明中.

那么,Python中是否存在类似的内容?

python compound-assignment

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

数组元素(在使用复合赋值运算符之后)产生垃圾值,为什么?

#include<stdio.h>
void main(void)
{
    int a[5]={90,78,77,98,98}, b[5]={80,45,67,88,57}, c[5]={88,99,65,55,74},total[3],i,j;
    for(j=0;j<=4;j++)
        {
            total[0]+=a[j];
            total[1]+=b[j];
            total[2]+=c[j];
        }

    for(i=1;i<=3;i++)
    {
    printf("%d?? ?? ? : %d\n",i,total[i-1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

total[0]并且total[1]是正确的价值,但是total[2]错误的价值.我找不到自己的错.你能解释一下吗?

c arrays initialization compound-assignment

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

C#复合赋值(例如+ =, - =等)"异常"

我正在读一本关于C#的书,它有关于复合赋值的说法(例如+ =, - =,*=,/ =,<< =,>> =):

这个规则的一个微妙的例外是事件,我们在第4章中描述:这里的+ =和 - =运算符是专门处理的,并映射到事件的添加和删除访问器.

谁能用简单的英语解释这意味着什么?我还没到第4章.

c# events compound-assignment

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