当一个数组名在括号中并带有插入符指针之前,这意味着什么?

时间:2009-02-02 18:26:34

标签: c++

我有一个无符号数组,称为dataArray(实际上在我试图弄清楚的程序中,它们以十六进制数字输入,但我不认为这很重要)。我有另一个unsigned char类型的变量,叫做c。

这是做什么的?

unsigned int dataArray[]={1,2,3,4,5};
unsigned char c;
x=c^ (dataArray)[i];

我已经读过,插入符号是对c的引用,但是当数组名称在括号中时它是什么意思?似乎x只是设置为dataArray中的第(i-1)个元素,但在什么条件下不是这样?

感谢。

6 个答案:

答案 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)。该程序用于从电子设备发送和接收信号,因此可以预期位级逻辑。非常感谢您的快速回复。