我无法弄清楚,为什么这段代码的结果是3
。
#include <stdio.h>
main()
{
int x[] = {1, 3, 2, 4, 0};
int y[] = {0, 2, 1, 5, 0};
int i, br = 0;
for (i = 0; i < 5; i++)
if (x[i] = y[i])
br++;
printf("%d\n", br);
}
答案 0 :(得分:6)
if (x[i] = y[i])
比较运算符为==
:
if (x[i] == y[i])
在第一个示例中,赋值返回了y[i]
的值,该值不为0,因此传递了if语句。
答案 1 :(得分:2)
正确,因为你将y [i]指向x [i]
y [i]有三个非零值。所以增加了三倍。为了平等,你应该使用x [i] == y [i]。不像你那样单身'='。