该函数检查第一个参数是否为偶数,如果是,则将该值添加到第二个参数。它使用void *,我必须转换为int,但是我遇到了语法问题以及如何正确投射以及使用指针。void *转换为int语法的问题
bool isEven(void *x, void* z) {
int * a = (int *)x;
int * b = (int *)z;
bool result = false;
if (*a % 2) {
result = true;
b += a;
}
return result;
}
我的语法出了什么问题? “a”中出现错误,表示“表达式必须具有整数或枚举类型”
至少'B + = A'线是错误的。 – Cthulhu
由于'a'和'b'是指针,并且假设您想要将'a'添加到'b',您需要'* b + = * a'。您至少应该在学习之前学习一种语言的**语法**,然后再提问 - 我们不是“教我语言X”网站。 – 2013-10-28 20:21:34
为什么你使用void *而不是int –