读书人

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

发布时间: 2012-03-23 12:06:21 作者: rapoo

这里的(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打印

读书人网 >C++

热点推荐