You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言char变量if判断报指针与整数比较警告如何解决

问题原因与解决方法

你代码中存在两处核心错误:

  • 第一处:scanf 传参不符合语法要求

scanf 读取字符输入时,需要传入变量的内存地址才能将输入值写入对应变量,你代码中 scanf("%c",q_ai); 直接传递了q_ai的变量值,需要修改为 scanf("%c",&q_ai);

  • 第二处:字符比较逻辑类型不匹配

双引号包裹的"y"、"n"是字符串常量,本质是指向字符数组的内存地址指针,无法和char类型的单字符变量q_ai直接比较。需要改为单引号包裹的字符常量'y'、'n'。

修正后的完整代码
//INPUT TRY 0 修正版
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//setting game:
char q_ai;      //want to play against ai? question about ai.


int main(void)
{   

    printf("Do you want to play vs AI? \n   Y/N? \n ");
    scanf("%c",&q_ai);       
    printf("q_ai == %c\n",q_ai);
    printf("sizeof(q_ai): %d",sizeof(q_ai));
    
    if(q_ai=='y') {
        printf("you will play against AI");
    }
    
    if(q_ai=='n') {
        printf("you will play 1v1");
    }
    
}

修改后运行即可正常读取用户输入,if分支判断也可以正常触发。

内容的提问来源于stack exchange,提问作者Riemann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:54:07