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

C语言编写void函数运行无输出,所写代码是否存在问题?

代码无输出的核心原因

你的代码运行后没有任何输出,是语法逻辑错误直接导致的,且当前代码未实现你预期的「带指针操作的void函数」功能,具体问题点如下:

  • for循环条件逻辑完全错误
    你写的for(;c=0;)中,c=0是赋值操作而非相等判断:执行时会直接把0赋值给变量c,而C语言的条件判断规则里0等价于逻辑假,循环从启动时就判定为不满足执行条件,循环体内的printf("Hello");从来没有被执行,自然不会产生任何输出。
    如果你需要写无限循环,标准写法是for(;;)或者while(1);如果是要判断变量c是否等于某个值,需要用相等比较运算符==,例如判断c等于0要写为c == 0。
  • main函数写法不符合C语言标准
    标准C规范中main函数的返回值类型必须是int,void main()属于非标准的老旧写法,部分编译器会直接编译失败,或者产生不可预期的运行行为。
  • 存在未初始化变量的隐患
    你声明的局部变量int c;没有手动赋初始值,在栈上分配内存时会携带随机的垃圾值,虽然当前写错的循环逻辑没有触发这个问题,但后续如果直接读取这个未初始化的变量参与运算,很容易出现逻辑bug。
  • 未匹配开发目标
    你原本计划编写配合指针操作的void函数,但当前代码既没有自定义void函数,也没有任何指针相关的操作逻辑,和预期目标完全不符。
参考修正示例

下面是一个实现了「带指针参数的void函数」的可运行示例,你可以对照参考:

#include<stdio.h>

// 自定义void函数:通过int类型指针修改外部变量的值
void setNum(int *target, int value) {
    *target = value;
}

int main() {
    int c;
    // 调用void函数,传入变量c的内存地址
    setNum(&c, 100);
    printf("调用void函数后c的值为:%d\n", c);

    // 正确的循环打印示例,加break避免无限运行
    for(;;) {
        printf("Hello\n");
        break;
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:45:42