c语言编程里void是什么(用C语言讨论数据void类型)
c语言编程里void是什么(用C语言讨论数据void类型)那么,void类型主要是用在什么地方呢?所以,要定义变量的话,还是得给定指定的数据类型才行。void类型,也叫做无数据类型,换言之,就是没有数据类型。那么void既然是定义无数据类型的,那么能够像前两天说的“枚举类型”和“基本类型”,应该也能用来定义数据吧。但我尝试着使用void来定义变量,却发现报错了。
昨天我们谈了数据类型中的枚举类型,今天我们来谈一谈数据类型中的void类型。
大家看到“void”这个单词,是不是感觉非常熟悉呢,没错,这是一个关键字,我们平时常常会用在定义函数、方法。
但说来惭愧,学C语言那么久,到现在为止,我还没有完全搞懂void的含义,平时只知道使用void来定义一个方法和函数。
在回顾C语言补充内容的时候,我才正式注意到了void这个概念。
void类型的定义void类型,也叫做无数据类型,换言之,就是没有数据类型。
那么void既然是定义无数据类型的,那么能够像前两天说的“枚举类型”和“基本类型”,应该也能用来定义数据吧。
但我尝试着使用void来定义变量,却发现报错了。
所以,要定义变量的话,还是得给定指定的数据类型才行。
那么,void类型主要是用在什么地方呢?
根据网上查阅的相关资料,void主要是用在对函数返回的限定和对参数返回的限定。
这句话比较难以理解,我看到这句话的时候,我也有点懵圈。
但进行梳理后,也比较好理解了。
就是void类型主要有三种情况,分别是“函数返回为空”、“函数参数为空”、“指针指向void”,但是这三种情况,到目前为止我只能解释前两种,对于第三种情况还略有些不明白,或许需要后续进行一个补充。
我们可以使用void来定义函数,但对于主函数main来说,使用void main(){}却会发现产生警告,这是因为main函数的返回值是int整数类型,所以要使用int main(){}来作为主方法,两者的主要区别就在于有无返回值。
void fun(){//函数返回为空
//没有return的返回值,这个可以与int定义函数进行一个对比
}
int main(){
return 0;
}
int fun1(){//函数参数为空
return 0;
}
int fun2(void){//函数参数为空
return 0;
}
很显然,函数参数为空有两种情况,一种是括号内什么都不添加,而另一种则是添加void。
malloc是内存分配函数,因为指针指向void我不是很明白,所以这里举了一个大家常用的一个内存分配函数的例子,等我再研究研究或许就明白的差不多了呢。
void *malloc( size_t size );//类型为void *的指针代表对象的地址,而不是类型
int main(){
void *m;
int *n;
m = n;
printf("%d" m);
}
但显然,这仍然是存在一些问题的,可是这是根据网上的说法来得到的,显然是有问题的。
所以我在基于自己的理解上修改了下代码,也就是根据指针的定义,要使用&这个符号来访问内存地址。
可以发现,这样就是正确的,到目前为止,我就发现void最有效的作用就是不需要强制进行类型转换,可以帮助简便程序。
总的来说,void类型其实我们平时用的比较少,所以对这个类型也没太多概念,今天主要是提及一下,之后若是再遇到了,我会再根据相应的题目写相应的文章来解释的。