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*= 万能指针,能存任意地址