void的含义是( )
发布网友
发布时间:2022-04-30 03:54
我来回答
共1个回答
热心网友
时间:2023-10-10 15:40
其它什么概念就不多说了,以下面几个例子来说明void的作用。
1.void的声明作用
void可用来声明一个函数,表示此函数无返回值或者是返回一个无类型的指针。例如:
void
func_no_return();
表示此函数无返回值。函数体内有没有return
都可以,如果加return,则return后面不跟任何值。
void
*
func_void_return();
表示此函数返回一个无类型的指针,也就是说什么样指针类型都可以。例如下面函数的定义:
void
*
func_void_return()
{
int
*
a;
int
b;
a
=
&b;
return
a;
}/*返回int型的指针*/
void
*
func_void_return()
{
char
*
a
="dfasdfa";
return
a;
}/*返回char型的指针*/
等等。
应用:void
*malloc
(size)
函数,malloc函数为调用者分配一块size大小的内存,并将此内存的地址返回给函数。至于此内存是什么样的类型,则可以由调用者自己确定。
2.void作为函数参数
int
func_void_parameter(void)与int
func_void_parameter()的区别。
前者表示此函数没有参数,如果你在调用此函数时,使用了参数,则编译器会报错误。你可以亲自试试。
后者也表示此函数没有参数,如果你在调用此函数时,使用的了参数,则有的编译器会报错或警告,也有的则视而不见。gcc则出现警告,cc则无视此错误。你也可以亲自编程测试。
int
func_void_parameter(void
*
param_ptr);
表示此函数的参数指针,无类型,即什么样的指针类型都可以传入到此函数中。
应用:
void
*
memcpy(void
*
target,
const
void
*
source,
size_t
n);
这是函数库中的内存拷贝函数,记得只是内存拷贝。如果参数不是void类型的,那此函数太无聊了。
3.void类型的指针不能进行算术运算。
void
*
ptr;
ptr++;
ptr--;这都是不可以的。想想看,ptr++指的是运算后,将指针指向下一个值,而不是指针的值加1。
就先这么多,如果有问题再说。