关键词不能为空

当前您在: 主页 > 英语 >

void的含义

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:37
tags:

-

2021年3月3日发(作者:斗篷)


void


的含义



void


即“无类型”,


void < /p>


*


则为“无类型指针”,可以指向任何数据类型。


void


指针使用规范


①void


针可以指向任意类型的数据,亦即可用任意数据类型的指针对

void


指针赋值。例如:



int * pint;



void *pvoid;



pvoid = pint; /*


不过不能



pint= pvoid; */


如果要将


pvoid


赋给其他类型 指针,则需要强制类型转换如:


pint= (int *)pvoid;




②在

< p>
ANSIC


标准中,


不允许对

void


指针进行算术运算如


pvoid++



pvoid+=1


等,


而 在


GNU


中则允许,


因为在缺省情况下 ,


GNU


认为


void *



char *


一样。


sizeof(*pvoid )== sizeof( char).


void


的作用


①对


函数返回的限定。



②对 函数参数的限定。当函数不需要返回值时,必须使用


void


限 定。例如:



void func(int, int);


当函数不


允许接受参数时,必须使用


voi d


限定。例如:



int func( void)


。由于


void


指针可以指 向任意类型的数据,


亦即可用任意数据类型的指针对


void< /p>


指针赋值,因此还可以用


void


指针来 作为函数形参,这样函数就可


以接受任意数据类型的指针作为参数。例如:



void * memcpy( void *dest, const void *src, size_t len );



void * memset( void * buffer, int c, size_t num);




--- -------------------------------------------------- -------------------------




1.


综述




许多初学者对


C/


C++


语言中的


void



voi d


指针类型不甚理解,


因此在使用上出现了一些错误。


本文将对


void


关键字的深刻含义进行解说, 并详述


void



void

< p>
指针类型的使用方法与技巧。




的含义



< /p>


void


的字面意思是“无类型”,


vo id*


则为“无类型指针”,


void*


可以指向任何类型的数据。


void


几乎只有“注释”和限制 程序的作用,


因为从来没有人会定义一个


void


变量,


让我们试着来定义:


void a;



这行语句编译时会出错,提示“illegal use of type’void’”。不过,即使


voida


的编译 不会出错,它也


没有任何实际意义。




void


真正发挥的作用在于:





1


)对函 数返回的限定;





2


)对函数参数


的限定。





众所周知,如果指针


p1



p2


的类型相同,那 么我们可以直接在


p1



p2


间互相赋值;如



p1



p2


指向不同的数据类型,则必须使用强制类型转换运算符把 赋值运算符右边的指针类型转换为左


边指针的类型。




例如:



float * p1;



in t* p2;



p1 = p2;



其中


p1 = p2


语句会编译出错,


提示“’=’:cannotconvertfrom’int *’to’float *’”,


必须改为:



void * p1;



int * p2;



p1=(float*)p2;



void*


则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:



p1 = p2;



但这 并不意味着,


void*


也可以无需强制类型转换地赋给其它类 型的指针。


因为“无类型”可


以包容“有类型”,


而“有类型”则不能包容“无类型”。


道理很简单,


我们可以说“男人和女人都是人”,


但不能说“人是男人”或者“人是女人”。下面的语 句编译出错:



void * p1;



int * p2;



p2 = p1;





提示“’=’:cannotconvertfrom’void*’to’int*’”。



的使用





下面给出


void


关键字的使用规则:




规则一如果函数没有返回值,那么应声明为


void


类型




< br>C


语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但 是许多程序员却误以为


其为


void


类 型。例如:



add(inta,intb)



{



}



{



return a+b;



int main(int argc,char * argv[])



printf(/



}



程序运行的结果为输出:




2+3=5


这说明不加返回值说明的函数的确为


int


函数。




林锐博


士《高质量


C/


C++


编程》中提到:“C++语 言有很严格的类型


安全


检查,不允许上述情况(指函数不加


类型声明)发生”。可是编译器并不一定这么认定,譬如在


Visu alC++6.0


中上述


add


函数的 编译无错也


无警告且运行正确,所以不能寄希望于编译器会做严格的类型检查。




因此,为了避免混乱,我们在编

< p>


C/C++


程序时,


对 于任何函数都必须一个不漏地指定其类型。


如果函数没有返回值,


一定要声明为


void


类型。这既是程序良好可读性的需要, 也是编程规范性的要求。另外,加上


void


类型声明后,也可 以发挥


代码的“自注释”作用。


代码的“自注释”即代码能自己 注释自己。



[Page]


规则二如果 函数无参数,那么


应声明其参数为


void




C++

语言中声明一个这样的函数:



int function(void)



{



return1;



}



则进行下面的调用是不合法的:



function(2);



因为在


C++


中,


函数参数为


void


的意思是这个函数不接受任何参数。


我们在< /p>


TurboC2.0


中编译:



fun()



{



}



{



#include



return1;



main()



printf(/



getchar();



}



编译正确且输出


1

< br>,这说明,在


C


语言中,可以给无参数的函数传送任意类 型的参数,但是在


C++











< br>码








C++






















< br>示


“’fun’:functiondoesnottake1paramete rs”。




所以,无论在

< p>
C


还是


C++


中,若函数 不接受任何

-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:37,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/699952.html

void的含义的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文