C 语言 void 完全用法

void 是 C 语言里 **"空 / 无"** 的意思,核心就 3 个用法:无返回值、无参数、空指针,非常简单。

我用最通俗的方式给你讲清楚,附带能直接运行的例子。


1. 函数没有返回值 → void

当一个函数不需要返回任何数据 时,返回类型写 void

例子:打印函数,不需要返回值

复制代码
#include <stdio.h>

// 无返回值 → 必须写 void
void sayHello() {
    printf("Hello!\n");
    // 这里不用 return
}

int main() {
    sayHello();
    return 0;
}

注意

  • void → 函数里不能写 return 数值
  • 想提前退出可以写 return;(不带值)

2. 函数没有参数 → (void)

表示这个函数不接收任何参数 ,比空括号 () 更规范。

复制代码
// 明确表示:无参数
void func(void) {
    printf("我没有参数\n");
}

为什么要用 void

  • func() 在 C 语言旧标准里 = 参数不确定
  • func(void) = 明确没有参数(更安全、规范)

3. 万能空指针 → void*

这是 void 最强大的用法:void* 是可以指向 任意类型数据的指针(int、char、数组、结构体都行)。

例子:void* 指向不同类型

复制代码
#include <stdio.h>

int main() {
    int a = 10;
    char c = 'A';
    
    void* p;  // 空指针
    
    p = &a;   // 指向 int
    printf("%d\n", *(int*)p);  // 要强转才能取值
    
    p = &c;   // 指向 char
    printf("%c\n", *(char*)p);
    
    return 0;
}

规则

  • void* 可以存任何地址
  • 取值时必须强转(int*)p(char*)p

4. 常见错误(新手必看)

❌ 错误 1:void 变量

复制代码
void a;  // 错误!void 没有大小,不能定义变量

❌ 错误 2:void 函数返回值

复制代码
void func() {
    return 10;  // 错误!void 不能返回数值
}

❌ 错误 3:直接使用 void* 取值

复制代码
void* p = &a;
printf("%d", *p);  // 错误!必须强转


总结

  • void = 空、无
  • 函数不返回值 → 用 void
  • 函数无参数 → 用 (void)
  • void* = 万能指针,能存任意地址
相关推荐
aramae1 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
91刘仁德4 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
码行山野赴时序归途4 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
景熙55234 小时前
单体项目编写思路和落地形式
java·开发语言
库玛西5 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研
计算机毕设定制辅导-无忧学长5 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
Ivanqhz5 小时前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
m0_734571765 小时前
深入理解C++ RAII
开发语言·c++
泡海椒5 小时前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
雷✘6 小时前
C 语言预处理中的宏展开、条件编译与头文件保护
c语言