(void *)0:这是什么演员? [英] (void*)0 : what is this cast?
本文介绍了(void *)0:这是什么演员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好!
以下示例代码来自string.h
展开 | 选择 | 换行 | 行号
解决方案
在C中使用NULL作为值为0的指针。即,空指针。 void *是指向任何类型的指针,因此(void *)0是整数值0到任何类型的指针的转换。
在C ++中不使用NULL。 / blockquote>
除了你注意到的这个例子之外,void *类型在C和C ++中有许多合法用途。
void * type声明一个通用指针变量。由于编译器不知道你打算用这样的变量指出什么,它不会让你取消引用指针。但是,您可以将这样的指针传递给函数。
C程序可以使用void *指针来近似多态和信息隐藏。 C ++可能有更好的方法来实现这些目标。
谢谢你们的答案。
虚空*除了你注意到的这个例子之外,*类型在C和C ++中有许多合法用途。
你能告诉我使用这个的例子或者给我参考自己学习吗?我对如何使用这样的类型作为参数传递感兴趣。在函数中传递这些参数的用法是什么?
请注意我不使用C ++,所以关于C的例子是我的主要兴趣。
再次感谢。
Hello!
The below sample code is from string.h
Expand|Select|Wrap|Line Numbers解决方案NULL is used in C as a pointer with a value of 0. That is, a null pointer. void* is a pointer to any type, so (void*)0 is a cast of the integer value 0 to a pointer to any type.
NULL is not used in C++.
The void* type has many legitimate uses in C and C++ beyond this one example that you noted.
The void* type declares a generic pointer variable. Since the compiler doesn''t know what you intend to point at with such a variable, it won''t let you dereference the pointer. However, you can pass such a pointer to and from functions.
A C program can use void* pointers to approximate polymorphism and information hiding. C++ probably has better ways to achieve these goals.
Thank you both for your answers.
The void* type has many legitimate uses in C and C++ beyond this one example that you noted.Can you please give me examples of using this or give me references to study this by myself? I am interested on how a type like this can be used as parameter passing. And what is the usage of passing such parameters in functions?
Please note that I don''t use C++, so examples on C is my main interest.
Thanks again.
这篇关于(void *)0:这是什么演员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取
|
15天全站免登陆