整型指针强制转化为字符指针后,自身保存的地址变化了?

Renzhiheng 2011-06-16 12:02:05
int main(){

int i= 10;

int * pInt;
pInt=& i;


char * pChar;
pChar= (char *)pInt;



cout<< pInt<< endl;
cout<< pChar<< endl;

return 0;
}

请问:pInt和pChar为何会不一样?我理解pInt=pChar=&i=编译系统分配的一个特定内存编号。这个编号不会因为指针指向什么数据类型而转变的吧?
...全文
354 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox_ocean 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 renzhiheng 的回复:]
4楼的回复我不是很明白。
类型不同
所以 一个输出地址 一个输出内容

1)pInt是int指针变量,cout输出地址,这个我能理解。
2)pChar是char指针变量,cout为何就不输出地址呢?而是空白?
[/Quote]

cout 会自动识别他的参数类型,pChar是一个字符指针,所以就会是内容,而10转换成字符时是一个不可打印的字符,自然输出是空白了,
就想叫yoko 2011-06-16
  • 打赏
  • 举报
回复
cout 重载的 <<运算符 参数为char*类型时 把这个地址指向的内容按字符串输出 直到遇到'\0'
Renzhiheng 2011-06-16
  • 打赏
  • 举报
回复
4楼的回复我不是很明白。
类型不同
所以 一个输出地址 一个输出内容

1)pInt是int指针变量,cout输出地址,这个我能理解。
2)pChar是char指针变量,cout为何就不输出地址呢?而是空白?
就想叫yoko 2011-06-16
  • 打赏
  • 举报
回复
改成
printf("%p\t%p\n", pChar, pInt);
就能看到他们存储的都是i的地址
cout char* 输出 是把i地址的内容当字符串处理 输出直到遇到'\0'
jernymy 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liao05050075 的回复:]
自然是一样的
只是输出的时候,你用cout 去输出一个char*,它默认按字符串来输出, 所以你看到的结果不同
你改成
printf("%p,%p", pInt, pChar)看看
[/Quote]
建议使用printf
c_losed 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 renzhiheng 的回复:]

我理解,pChar=pInt=int变量i的地址啊。
[/Quote]
类型不同
所以 一个输出地址 一个输出内容
Renzhiheng 2011-06-16
  • 打赏
  • 举报
回复
我理解,pChar=pInt=int变量i的地址啊。
liao05050075 2011-06-16
  • 打赏
  • 举报
回复
自然是一样的
只是输出的时候,你用cout 去输出一个char*,它默认按字符串来输出, 所以你看到的结果不同
你改成
printf("%p,%p", pInt, pChar)看看
ouyh12345 2011-06-16
  • 打赏
  • 举报
回复
cout<< pChar<< endl;
不是输出pChar的地址
zyc_glboy 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 renzhiheng 的回复:]
那cout<<pInt的时候,为何不是将指针指向的int变量a=10,按照int型输出呢?

cout的意思,是不是:
1)cout<<int指针时,输出指针保存的地址值。
2)cout<<char指针时,输出指针所指向变量的值。

有什么办法,能够cout一个char真实的指针?
[/Quote]
重载<<
Renzhiheng 2011-06-16
  • 打赏
  • 举报
回复
那cout<<pInt的时候,为何不是将指针指向的int变量a=10,按照int型输出呢?

cout的意思,是不是:
1)cout<<int指针时,输出指针保存的地址值。
2)cout<<char指针时,输出指针所指向变量的值。

有什么办法,能够cout一个char真实的指针?
赵4老师 2011-06-16
  • 打赏
  • 举报
回复
摒弃cout;使用printf!
liao05050075 2011-06-16
  • 打赏
  • 举报
回复
将指针所指向的变量i,按照字符串输出
Renzhiheng 2011-06-16
  • 打赏
  • 举报
回复
现在的问题是:{cout<< pChar}的时候。pChar是个指向char数据类型的指针,那么是将指针保存的地址按照字符串输出,还是将指针所指向的变量i,按照字符串输出?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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