社区
C++ 语言
帖子详情
整型指针强制转化为字符指针后,自身保存的地址变化了?
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
打赏
收藏
整型指针强制转化为字符指针后,自身保存的地址变化了?
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=编译系统分配的一个特定内存编号。这个编号不会因为指针指向什么数据类型而转变的吧?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,按照字符串输出?
关于结构体
指针
类型的
强制
转换
在学习stm32嵌入式开发过程中,关于对GPIOA等
地址
的
强制
性结构体
指针
类型转换的参考依据!
C语言程序设计(高清PDF)
6.5
指针
的
地址
分配 111 6.6
指针
数组 112 6.7 指向
指针
的
指针
118 6.8 main函数的参数 121 第7章 结构体与共用体 125 7.1 结构体类型变量的定义和引用 125 7.1.1 结构体类型变量的定义 126 7.1.2 结构体类型变量的...
《C语言基础》 之 第2章 变量与数据
课程内容:常量、变量、基本类型之整形/实型/
字符
型、有符号数与无符号数、printf函数和scanf函数、算术运算符1、++和--、类型转换(分成两个视频)。
c语言
整型
变为
字符
指针
,关于
强制
类型转换以及将整数转换为
指针
的有关问题...
当前位置:我的异常网» C语言»关于
强制
类型转换以及将整数转换为
指针
的有关问题关于
强制
类型转换以及将整数转换为
指针
的有关问题...:89次关于
强制
类型转换以及将整数转换为
指针
的问题最近看c陷阱与缺陷...
C
指针
强制
类型转换对所指向的数据的影响
学习C
指针
过程中,受同学启发,思考了一个问题:如果对一个
指针
的类型进行
强制
转换(比如将一个指向
整型
的
指针
强制
转换为指向
字符
的
指针
),那么这个
指针
指向的数据会发生什么样的
变化
呢? 下面的代码实现了对
指针
...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章