我有一个无符号数组,称为dataArray(实际上在我试图弄清楚的程序中,它们以十六进制数字输入,但我不认为这很重要)。我有另一个unsigned char类型的变量,叫做c。
这是做什么的?
unsigned int dataArray[]={1,2,3,4,5};
unsigned char c;
x=c^ (dataArray)[i];
我已经读过,插入符号是对c的引用,但是当数组名称在括号中时它是什么意思?似乎x只是设置为dataArray中的第(i-1)个元素,但在什么条件下不是这样?
感谢。
答案 0 :(得分:11)
括号不会影响这里的语义。 x计算为按位异或 - 或c(此处未定义)和dataArray [i]。
答案 1 :(得分:2)
在某些派生语言中,插入符用于声明托管指针。它是由microsoft制作的所谓的C ++ / CLI语言,用于.Net。它在普通的C ++中没有那个含义。在表达式中,正如其他人已经解释的那样,插入符号意味着逐位XOR。
答案 2 :(得分:1)
此处使用的^
字符是按位异或(请参阅wikipedia)。括号在这里没有任何内容,因为operator []的优先级高于bitwise-xor。
答案 3 :(得分:0)
如果这确实是C ++,则'^'是XOR按位运算符。括号是额外的,在这个例子中什么都不做。
答案 4 :(得分:0)
据我所知,^没有超载。如果输入并正确编译,它将尝试XOR操作,但在这种情况下,它可能会弄乱您不希望它的数据......
答案 5 :(得分:0)
好的,很酷。这在我正在使用的程序中是有意义的。我原以为插入符号是一个指针,但它是一个异或,然后在行中有一个& (按位AND)。该程序用于从电子设备发送和接收信号,因此可以预期位级逻辑。非常感谢您的快速回复。