如何在C++中表示Delphi运算符“<>”?

3

我曾经尝试将一些Delphi代码翻译成C++,但遇到了困难。以下是代码:

if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0
then ShowMessage('Vertical scrollbar is visible!');

我之前没有使用过Delphi,所以不确定"<>"运算符是什么。我查了一下发现这被称为指针不等运算符,但我不确定它在C++中的翻译是什么。非常感谢任何帮助!


这是关系运算符之一,它们在Delphi文档中有详细描述。 - Rob Kennedy
4个回答

20

<>是不等于的意思(类似于VB,出于某些愚蠢的原因)。 C++对指针不相等使用!=,就像对其他不相等一样。


C语言是个特例,使用!表示不等于,其他编程语言都模仿了这种写法。而<>是数学上的不等号,在大多数(受Algol启发的)编程语言中都被采用。 - Gerry Coll

7

C++中的等价运算符:不等于:!=

所以代码应该改为:

if ((GetWindowlong(Stringgrid1.Handle, GWL_STYLE) & WS_VSCROLL) != 0) {
    ShowMessage('Vertical scrollbar is visible!');
}

1
你确定是 && 吗?不应该是 & 吗?(我不懂 Delphi,无法确定) - Alexandre C.
1
更符合口语化的写法是 if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) & WS_VSCROLL) - Alexandre C.
@Alexandre C:那么他就必须想出不同的示例代码来展示!=的用法。 - Warren P

1

<> 表示不同,相当于 C++ 中的 != 运算符。


0

<> 运算符在 C 衍生语言中拼写为 !=,表示不等式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接