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

C语言如何为接收指针参数的get_user_input函数传递choice值

正确调用方案

你当前的写法存在两个核心问题:

  1. get_user_input是无返回值(void)类型的函数,不能直接将调用结果赋值给变量
  2. 该函数要求传入char*类型的指针参数,指向用于存储输入字符的内存地址,你调用时没有传入对应参数

修正后的调用代码

void manual_read_sensors(void) {
    while (1) {
        // 询问用户需要读取哪个传感器
        printf("Which sensor do you want to read?\n"
               "(i)ntensity\n"
               "(a)ngle\n"
               "(t)ime\n"
               "(s)unscreen\n"
               "(q)uit\n"
               "Enter choice: ");
        // 定义存储用户输入的字符变量
        char choice;
        // 传入变量的内存地址到函数中,函数会直接修改该变量的值
        get_user_input(&choice);

        // 输入q则返回主菜单
        if (choice == 'q')
            break;
        
        // 此处可以补充其他输入对应的处理逻辑
    }
}

实现原理

get_user_input的参数input是字符指针,接收外部choice变量的地址后,函数内部的scanf(" %c", input)会把用户输入的字符直接写入该地址对应的内存空间,相当于直接修改了外部的choice变量,不需要通过函数返回值传递输入结果。原有get_user_input的实现逻辑无需调整,可以直接使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:24:04