文章目录

  • 定义
  • 应用
  • 应用示例:
  • 1.void修饰函数参数和函数返回
  • 2. 不能定义void类型变量
  • 3. void* 可以指向任何类型的数据,被称为万能指针
  • 4. void* 常用于数据类型的封装



定义

void字面意思是”无类型”,​​void*​​无类型指针,无类型指针可以指向任何类型的数据。

void定义变量是没有任何意义的,当你定义​​void a​​,编译器会报错。

应用

void真正用在以下两个方面:

  • 对函数返回的限定;
  • 对函数参数的限定;
  • 数据类型的封装(void 万能类型)

应用示例:

1.void修饰函数参数和函数返回

// void修饰函数参数和函数返回
void test01(void){
printf("hello world");
}

2. 不能定义void类型变量

下面的程序会报错

// 不能定义void类型变量
void test02(){
void val; //报错
}

3. void* 可以指向任何类型的数据,被称为万能指针

//  void* 可以指向任何类型的数据,被称为万能指针
void test03(){
int a = 10;
void* p = NULL;
p = &a;
printf("a:%d\n",*(int*)p);

char c = 'a';
p = &c;
printf("c:%c\n",*(char*)p);
}

4. void* 常用于数据类型的封装

//  void* 常用于数据类型的封装
void test04(){
//void * memcpy(void * _Dst, const void * _Src, size_t _Size);
}