运算符或位于到java的字符端口上 你好,有人能给我解释一下C++中的这行代码吗? couleur[i][c]=couleur[i][c] || couleur[noeud][c];

运算符或位于到java的字符端口上 你好,有人能给我解释一下C++中的这行代码吗? couleur[i][c]=couleur[i][c] || couleur[noeud][c];,java,c++,Java,C++,数组是字符类型。 这是做什么的?数组索引是没有意义的,所以我不解释它们, 因为我需要将这行代码重写为Java代码,而在Java中,我得到了一个错误 二进制| |的操作数类型错误。 我在C++中检查了这个代码,可以得到它的功能——不管字符的值是什么,它总是赋值“。”p> 有什么想法吗 a || b 是给布尔人的。在爪哇和C++中都有。但是,在C++中,如果A和/或B不是布尔值,编译器将首先将它们转换成布尔值。任何非零的值都会变为真。在Java中,这将是: (a != 0 || b != 0) ?

数组是字符类型。 这是做什么的?数组索引是没有意义的,所以我不解释它们, 因为我需要将这行代码重写为Java代码,而在Java中,我得到了一个错误 二进制| |的操作数类型错误。 我在C++中检查了这个代码,可以得到它的功能——不管字符的值是什么,它总是赋值“。”p> 有什么想法吗

a || b
是给布尔人的。在爪哇和C++中都有。但是,在C++中,如果A和/或B不是布尔值,编译器将首先将它们转换成布尔值。任何非零的值都会变为真。在Java中,这将是:

(a != 0 || b != 0) ? 1 : 0
因此,要翻译您的代码,请使用以下命令:

couleur[i][c] = (couleur[i][c] != 0 || couleur[noeud][c] != 0) ? 1 : 0;
您得到的“”可能是空字节0或“\0”

是给布尔人的。在爪哇和C++中都有。但是,在C++中,如果A和/或B不是布尔值,编译器将首先将它们转换成布尔值。任何非零的值都会变为真。在Java中,这将是:

(a != 0 || b != 0) ? 1 : 0
因此,要翻译您的代码,请使用以下命令:

couleur[i][c] = (couleur[i][c] != 0 || couleur[noeud][c] != 0) ? 1 : 0;
您得到的“”可能是一个空字节0,或“\0”。

在C语言中,您可以对任何值使用or运算符,它将从编译器转换为布尔值,规则是任何非零值都为true。 您必须重写以下内容:

couleur[i][c]=(couleur[i][c] != 0) || (couleur[noeud][c] != 0);
但您遇到了麻烦,因为couler[]]被类型化为char,Java结果是布尔值,所以请使用三元运算符:

couleur[i][c]=(couleur[i][c] != 0) || (couleur[noeud][c] != 0) ? 1 : 0;
在C语言中,您可以对任何值使用OR运算符,它将从编译器强制转换为布尔值,并遵循任何非零值为真的规则。 您必须重写以下内容:

couleur[i][c]=(couleur[i][c] != 0) || (couleur[noeud][c] != 0);
但您遇到了麻烦,因为couler[]]被类型化为char,Java结果是布尔值,所以请使用三元运算符:

couleur[i][c]=(couleur[i][c] != 0) || (couleur[noeud][c] != 0) ? 1 : 0;

java中的结果如何?您不能将布尔值指定给charI,因为它遗漏了某些内容。检查我的更新。我猜你的“”实际上是0。有时由“\0”表示,我的编译器提示我将结果强制转换为char@user1291518如果couleur用作字符串char*,\0将在C中标记该字符串的结尾,而它们在Java中是合法字符。您可能需要手动处理该问题。强制转换为char是必需的,因为在Java中,文本数字(如0:1)被视为int,这是32位的,而char仅为16>潜在的精度损失=必须强制转换。Java中的结果如何?您不能将布尔值指定给charI,因为它遗漏了某些内容。检查我的更新。我猜你的“”实际上是0。有时由“\0”表示,我的编译器提示我将结果强制转换为char@user1291518如果couleur用作字符串char*,\0将在C中标记该字符串的结尾,而它们在Java中是合法字符。您可能需要手动处理该问题。强制转换为char是必需的,因为在Java中,文字数字(如0:1)被视为int,这是32位,而char仅为16>潜在的精度损失=必须强制转换。我快了4分钟。另外,您的代码无法编译。无法将布尔值分配给字符,这将是编译器错误。确定。你跑得更快。真为你高兴。我正在修改代码,就像我的代码一样,你的代码在第一次尝试时并没有编译,因为我看到了我的错误,而postingI比我快了4分钟。另外,您的代码无法编译。无法将布尔值分配给字符,这将是编译器错误。确定。你跑得更快。真为你高兴。我正在修改代码,就像我的代码一样,你的代码在第一次尝试时并没有编译,因为我在发布时看到了我的错误