我试图理解一些古老的代码,然后我遇到了似乎是从类型中减去的东西。这是一个古老的C ++成语吗?我一直试图推测,但如果C ++有一个'类型'输入超载operator-()
的类型,我甚至无法猜测它会做什么。
int* array;
if(array[index] != (int)-1)
{
//do things
}
(我显然已经重构/删除了一些内容以使其失效;这段代码确实可以编译和工作,但即使我单步执行,我也无法确定此行正在做什么)
围绕int
的括号可能是一个线索;我不确定他们可以做什么。
答案 0 :(得分:8)
这是-1
强制转换为int
,而不是减法。
正如Jerry Coffin所指出的那样,演员阵容毫无意义(没有双关语意),因为无论如何这个字面都是int
类型。