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

为何C语言程序无输出?我尝试用右移获取10的第1位布尔值

你的C程序问题解析

嘿,先澄清一个关键误解:你的main()函数是有返回值的!最后一行的return 0;就是返回给操作系统的执行状态码,0代表程序正常运行结束。你真正的问题应该是程序没有控制台输出,以及调用cb(10,1)后看不到计算结果~

为什么没有输出?

你确实调用了cb(10,1)函数,它也正确计算出了结果(10的二进制是1010,右移1位后是101,和1按位与得到1,所以函数返回true),但C语言不会自动把函数的返回值打印出来——你必须显式调用输出函数,比如printf,才能把结果展示在控制台。

怎么修改才能看到结果?

只需要添加输出逻辑就行,记得要包含stdio.h头文件(因为printf在这个头文件里声明):

#include<stdbool.h>
#include<stdio.h>  // 必须包含这个才能使用printf

bool cb(int N,int i){ // 被调用函数
    return ((N>>i)&1)==1;
}
int main(void) { // 主函数
    bool result = cb(10,1);
    // 方式1:用数字打印(true对应1,false对应0)
    printf("10的第1位布尔值是:%d\n", result);
    // 方式2:用更直观的文字打印
    // printf("10的第1位布尔值是:%s\n", result ? "true" : "false");
    return 0;
}

关于main返回值的补充

你的main()已经正确返回了0,这个值是给操作系统看的,不会直接显示在控制台。如果想验证它的返回值,可以:

  • 在Windows命令行里,执行完程序后输入echo %errorlevel%,会看到输出0
  • 在Linux/macOS终端里,执行完程序后输入echo $?,同样能看到返回的0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:09:27