关键词不能为空

当前您在: 主页 > 英语 >

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的含义的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文