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* = 万能指针,能存任意地址
相关推荐
y = xⁿ4 分钟前
DeepSeek harness工具系统什么设计的?
开发语言·python
luj_17688 分钟前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
ttwuai12 分钟前
Go 后台接入 CAS 单点登录后,原来的权限怎么继续生效?
开发语言·后端·golang
断点之下19 分钟前
C++类和对象:六个默认成员函数详解
开发语言·c++
吴声子夜歌25 分钟前
Java——类、对象及方法(二)
java·开发语言
2401_8906034027 分钟前
Python入门语法(一)
java·开发语言·python
Chester_19998 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲9 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员10 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm