C语言 void数据类型

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 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);
}

以上是关于C语言 void数据类型的主要内容,如果未能解决你的问题,请参考以下文章

C 语言数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )

c语言,如何将多种类型数据组成一个字符串

C语言-void类型作为万能指针类型

关于C语言的语法中类型转换的一个问题。求教C语言高手。

c# 调用c dll void 指针类型转化问题

嵌入式进阶必看!7个硬核的 C 语言要点