把一个char * 类型的数据赋值给一个void * 类型的数据的具体实现是怎么样的??

橡皮擦 2012-03-06 08:27:43
我知道会发生强制类型转换,char * 是指向一个字节的指针, 转换成void * 是什么样的??很不明白
...全文
1588 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
L194WT 2012-03-07
  • 打赏
  • 举报
回复
指针的本质就是一个int数据变量,存的是地址而已。int *p,char *p ,像这样char,int是修饰(*p),*p是p指向地址的内容,实际上是这个char是修饰的不是p本身存的内容。viod *是万能指针,就是说这个指针指想的的内容可以是任何类型。
wenjinghuan999 2012-03-06
  • 打赏
  • 举报
回复
转换来转换去无非是个地址,地址根本没变,只是编译器看待他的类型变了
东莞某某某 2012-03-06
  • 打赏
  • 举报
回复
将字符串地址传给void* 编译器可将该地址解释为任何类型,比如函数体内执行转换(int*),除此之外,什么都一样,数据一样,字符串地址也不变
飞天絮雪 2012-03-06
  • 打赏
  • 举报
回复
对于void *,可以转换为任意类型指针,而无需强制转换。
char * 是指向一个字节的指针, 转换成void * 一般用于:希望输出成地址的任何指针变量。
看下面的demo:
01.#include <iostream>
02.using namespace std;
03.
04.int _tmain(int argc, _TCHAR* argv[])
05.{
06. char *word = "again";
07. cout<<"Value of word is: "<<word<<endl
08. <<"Value of static_cast<void*>(word) is:"
09. <<static_cast<void*>(word)<<endl;
10. system("pause");
11. return 0;
12.}

运行结果:static_cast<void*>(word)是的地址。
具体可参考我的博客:
http://blog.csdn.net/feitianxuxue/article/details/7308063
欢迎提出意见
飞天絮雪 2012-03-06
  • 打赏
  • 举报
回复
对于void *,可以转换为任意类型指针,而无需强制转换。
char * 是指向一个字节的指针, 转换成void * 一般用于:希望输出成地址的任何指针变量。
看下面的demo:
01.#include <iostream>
02.using namespace std;
03.
04.int _tmain(int argc, _TCHAR* argv[])
05.{
06. char *word = "again";
07. cout<<"Value of word is: "<<word<<endl
08. <<"Value of static_cast<void*>(word) is:"
09. <<static_cast<void*>(word)<<endl;
10. system("pause");
11. return 0;
12.}

运行结果:static_cast<void*>(word)是的地址。
具体可参考我的博客:
http://blog.csdn.net/feitianxuxue/article/details/7308063
欢迎提出意见
飞天絮雪 2012-03-06
  • 打赏
  • 举报
回复
对于void *,可以转换为任意类型指针,而无需强制转换。
char * 是指向一个字节的指针, 转换成void * 一般用于:希望输出成地址的任何指针变量。
看下面的demo:
01.#include <iostream>
02.using namespace std;
03.
04.int _tmain(int argc, _TCHAR* argv[])
05.{
06. char *word = "again";
07. cout<<"Value of word is: "<<word<<endl
08. <<"Value of static_cast<void*>(word) is:"
09. <<static_cast<void*>(word)<<endl;
10. system("pause");
11. return 0;
12.}

运行结果:static_cast<void*>(word)是的地址。
具体可参考我的博客:
http://blog.csdn.net/feitianxuxue/article/details/7308063
欢迎提出意见
justkk 2012-03-06
  • 打赏
  • 举报
回复
数据本身没变,它还是它,就是看你用什么眼光来看待它
你可以认为它是char *,也可以认为它是void *
对于void *,可以转换为任意类型指针,而无需强制转换
justkk 2012-03-06
  • 打赏
  • 举报
回复
数据本身没变,它还是它,就是看你用什么眼光来看待它
你可以认为它是char *,也可以认为它是void *
对于void *,可以转换为任意类型指针,而无需强制转换
justkk 2012-03-06
  • 打赏
  • 举报
回复
数据本身没变,它还是它,就是看你用什么眼光来看待它
你可以认为它是char *,也可以认为它是void *
对于void *,可以转换为任意类型指针,而无需强制转换

70,028

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧