『壹』 void*有什么意义
我的理解是这样的,void*只指定了变量的性质是指针并没有指定类型。
一个指针经过void*变量中转之后并不会改变类型,如果改变了,一定是会出错的。
也就是说double *ptr2=(double*)voids;并不会把直正地址所指向的变理转成double型,强转只会引入错误,只有相互兼容的类型才可强转。
『贰』 VOID是什么意思
表示空类型,它跟int,float是同地位的,一般用在没有返回值的函数中,比如你写void
main
(),主函数完了不用写return
语句,但是如果是int
main
()或者是main
(),你不写return
语句它就会有warning
『叁』 求高人解释 void,的含义和作用
其它什么概念就不多说了,以下面几个例子来说明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。
就先这么多,如果有问题再说。
『肆』 void是什么意思
void[英][vɔɪd][美][vɔɪd]
adj.无效的; 空的,空虚的,没人住的; (职位)空缺着的;
n.太空,宇宙空间; 空位,空隙; 空虚感,寂寞的心情;
vt.使无效; 宣布…作废; 取消; 排泄;
第三人称单数:voids过去分词:voided复数:voids现在进行时:voiding过去式:voided
例句:
1.
This void raises interesting questions.
这种空白提出了一些令人感兴趣的问题。
2.
Peer-to-peer websites have filled the void.
点对点网站填补了这个空缺
『伍』 这个void有什么用,有它和没它有什么区别
1.概述
许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并
详述void及void指针类型的使用方法与技巧。
2.void的含义
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:
void a;
这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。
void真正发挥的作用在于:
(1) 对函数返回的限定;
(2) 对函数参数的限定。
我们将在第三节对以上二点进行具体说明。
众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型
转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。
例如:
float *p1;
int *p2;
p1 = p2;
其中p1 = p2语句会编译出错,提示“'=' : cannot convert from 'int *' to 'float *'”,必须改为:
p1 = (float *)p2;
而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:
void *p1;
int *p2;
p1 = p2;
但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包
容“无类型”。道理很简单,我们可以说“男人和女人都是人”,但不能说“人是男人”或者“人是女人”。下面的语句编译出错:
void *p1;
int *p2;
p2 = p1;
提示“'=' : cannot convert from 'void *' to 'int *'”。
3.void的使用
下面给出void关键字的使用规则:
规则一 如果函数没有返回值,那么应声明为void类型
在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。
『陆』 *(void **)&i是什么意思最后转化后的结果是什么帮忙解释一下
i 是一个变量
&i 是一个变量的地址
(void **)&i 是把变量的地址转换成无类型指针的指针
*(void **)&i 取地址内的值
最后的结果是:得到了用 i 所表示的存储单元的void类型的值(i 表示的是地址,应该是个整数或指针类型变量)
『柒』 VOID是什么意思
void是C语言中的一个关键字,字面意思是“无类型”,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,有注释和限制程序的作用。void *可以指向任何类型的数据,在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:
void真正发挥的作用在于:
1、对函数返回的限定
2、对函数参数的限定
『捌』 关于void的疑惑
比如函数 double s(int a)
他接受一个类型为int的值 返回一个类型为double的值
要有返回值 函数中就需要有 return 语句
用于返回一个值 给调用它的程序
函数没有返回值 也就是void类型的 就不需要加return语句拉
『玖』 程序设计中遇到的void到底是什么意思
1
概述
许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并
详述void及void指针类型的使用方法与技巧。
2.void的含义
void的字面意思是“无类型”,void
*则为“无类型指针”,void
*可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:
void
a;
这行语句编译时会出错,提示“illegal
use
of
type
'void'”。不过,即使void
a的编译不会出错,它也没有任何实际意义。
void真正发挥的作用在于:
(1)
对函数返回的限定;
(2)
对函数参数的限定。
『拾』 关于void
void dis();
void dis(void);
void作为函数修饰,表示没有返回值,放在形参里,表示无参数,上面两个是一样的,都是无返回值无参数的函数dis
char dis(void);
表示返回值类型为char,无参数的函数dis