C 错误 : expected expression before '||' token

标签 c

<分区>

这是我的函数合并代码:

    #include <stdio.h>
    #include "merge.h"


void merge(
    char a1[], int n1,
    char a2[], int n2,
    char output[])
{
    int i = 0;
    int j = 0;
    int z = 0;

    while (i < n1) || (j < n2)  // This is where the error happends
    {
        if (i < n1) && (j < n2)
        if (a1[i] <= a2[j])
                output[z++] = a1[i++];
        else
            output[z++] = a2[j++];

        else if (j == n2)
         while (i < n1)
              output[z++] = a1[i++];

    else if (i == n1)
         while (j < n2)
              output[z++] = a2[j++];
     }
}

你能告诉我为什么代码会出现这个错误吗?我已经查看了所有具有相同错误的问题,但似乎没有针对此错误的通用答案...... 非常感谢!

最佳答案

while (i < 3) || (j < 3) 

应该是:

while ((i < 3) || (j < 3))

或者(因为 < 的优先级高于 || )

while (i < 3 || j < 3) 

关于C 错误 : expected expression before '||' token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26175157/

相关文章:

c - 不知道如何将 Java 类转换为 C 头文件和代码

c - 如何在读取重定向文件的特定行时使程序结束

c++ - 如何确保 C/C++ 代码中不缺少 doxygen 样式的文档注释?

c - 为什么改变 SO_RCVBUF 的值不起作用?

c - 获取指向 4 维数组中子数组的指针

c - 内存中的位存储顺序

c - 如何使 Eclipse 使用不在项目根目录中的现有 makefile

c - 如何让我的脚本循环并根据命令退出?

c - 有没有什么方法可以等到任务在 intel arch 中捕获 SIGALRM 信号?

c - 使用函数指针和静态变量时是否需要读锁?