Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序C中的意外结果_C - Fatal编程技术网

程序C中的意外结果

程序C中的意外结果,c,C,我不明白,为什么这个代码的结果是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); } #包括 main(

我不明白,为什么这个代码的结果是
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);    
}
#包括
main()
{
int x[]={1,3,2,4,0};
int y[]={0,2,1,5,0};
int i,br=0;
对于(i=0;i<5;i++)
如果(x[i]=y[i])
br++;
printf(“%d\n”,br);
}
比较运算符为
==

if (x[i] == y[i])

在第一个示例中,赋值返回的
y[i]
值不是0,因此if语句通过。

它是正确的,因为您将y[i]赋值为x[i]


y[i]有三个非零值。所以br增加了三倍。为求相等,应使用x[i]==y[i]。不是单一的“=”。你的例子。< /p>这不是有效的C++。<代码> a= b < /Cuff>确实有将<代码> b <代码>分配给<代码> A<代码>的副作用,但它也是一个表达式,其表达式产生了<代码> b>代码>的值。如果<代码> b <代码>的值不同于<代码> 0 <代码>,则<>代码>如果将被输入(删除C++标签和缩进代码来维护上下文),就打开一些编译器警告。现在我明白了,谢谢。
if (x[i] == y[i])