首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这里的(void *)是什么意思啊《w》,该怎么处理

2012-03-23 
这里的(void *)是什么意思啊?《w》大家说详细些啊#include iostreamusingnamespacestdintmain(){inti10

这里的(void *)是什么意思啊?《w》
大家说详细些啊

#include <iostream>
using   namespace   std;
int   main()
{
int   i=10;
int   *iPtr=&i;
char   cPtr[]= "string ";
cout   < <   "iPtr                   = "   < <iPtr   < <   endl;
cout   < <   "cPtr                   = "   < <cPtr   < <   endl;
cout   < <   "A   is                   = "   < <(int)( 'A ')   < <   endl;
cout   < <   "char   A   is         = "   < <(char)( 'A '+i-10)   < <   endl;
cout   < <   "cPtr   address   = "   < <(void   *)cPtr   < <   endl;
return   0;
}

[解决办法]
把char*指针转换成普通指针,显示其指向的地址值;
如果不转化的话就与cout < < "cPtr = " < <cPtr < < endl;一样了
[解决办法]
char*输出来的直接是字符串,不能得到地址,只能转化为void*才能输出地址
[解决办法]
因为 char * 是无法cout 输出其地址的,
(cout < < char * 输出的是这个 char *指向的字符串内容)
所以,为了输出地址值,
需要变换指针类型,
所以有了 (void *)cPtr,
当然,其他类型的也是可以的,只要不是 char * 即可, 比如 (int *)cPtr //OK!
[解决办法]
< <主要是进行了重载 char*类型会自行解析输出字符串
打印类型地址,要么转成void要么转int打印

热点排行