c - 警告 : pointer/integer type mismatch in conditional expression

标签 c pointers

下面的代码是抛出

"warning: pointer/integer type mismatch in conditional expression".

我该如何解决这个问题?

#include<stdio.h>

int main()
{
    char *str = "Error";
    char *sch_str="pqrs";
    int i=1;

    if (i >= 0)
            str = (sch_str[i] != NULL) ? sch_str[i] : "Unknown";


    printf("%c\n",sch_str[i]);
    printf("%s\n",str);

    return 0;
}

最佳答案

1. sch_str[i] 不是指针。无法将其与 NULL 进行比较。
2. 无法将 [assign the value of] sch_str[i] 放入 str

关于c - 警告 : pointer/integer type mismatch in conditional expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20971513/

相关文章:

c - 为什么 node* root = malloc(sizeof(int)) 分配 16 个字节的内存而不是 4 个?

c - 在C中打印字符指针

c - 如何使用 Flex/Lex 和 Yacc/Bison 进行变量替换

c++ - 鼠标过滤器驱动程序的问题

c - 如何在 C 中找到动态分配数组的大小?

c - 用指针 C 循环

c - C 结构体中的函数指针

c++ - 带有插入符号操作的字符 XOR

c++ - 停止失控的 Lua 子进程

c++ - 数组中存储的地址值如何与其自己的地址相同,它应该指向某个不同的地址(&arr [0])?