社区
C++ 语言
帖子详情
转换指针类型
lzlilj
2010-01-12 12:05:09
#include<iostream>
using namespace std;
int main()
{
char f='8',*p2;
int *p,*p1,b=123456,c;
p=(int *)&f;
p1=&b;
c=(int)p1;
p2=(char *)c;
cout<<c<<endl<<p2<<endl;
cout<<*p<<endl;
system("PAUSE");
}
结果为什么是乱码啊,高手们请帮帮我
...全文
114
10
打赏
收藏
转换指针类型
#include using namespace std; int main() { char f='8',*p2; int *p,*p1,b=123456,c; p=(int *)&f; p1=&b; c=(int)p1; p2=(char *)c; cout<<c<<endl<<p2<<endl; cout<<*p<<endl; system("PAUSE"); } 结果为什么是乱码啊,高手们请帮帮我
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
macrojj
2010-01-13
打赏
举报
回复
p2 是个Char*在cout<<的时候 要输出到它的结束符 但是你把Char c给了p2 在c之后 并没有结束符
'\0'所以cout输出了乱码。
猫已经找不回了
2010-01-12
打赏
举报
回复
char f='8'
把f指向的内容作字符串输出,从而不能确定'\0'在那里结束,所以乱码/
lzlilj
2010-01-12
打赏
举报
回复
那怎么样转换就不是乱码了啊
冻结
2010-01-12
打赏
举报
回复
p=(int *)&f;
p1=&b;
c=(int)p1;
p2=(char *)c;
这几句转出来的本身就是乱码。
lzlilj
2010-01-12
打赏
举报
回复
p=(int *)&f 就是转换了,我觉得应该输出F的值,但是是乱码
stardust20
2010-01-12
打赏
举报
回复
p=(int *)&f;
把char*转为int*了
xingzhe2001
2010-01-12
打赏
举报
回复
p2指向b,可能是乱码阿
taodm
2010-01-12
打赏
举报
回复
理解C语言风格字符串以\0结束的含义没有?
ameng1110
2010-01-12
打赏
举报
回复
p=(int *)&f;
p1=&b;
c=(int)p1;
p2=(char *)c;
==>
c and p2都是b的地址值。
p是以f地址开头的int *,p的有效值是p指向空间的第一个字节,也就是f的值('8'),其余几个字节是随即的乱码。
该程序意义不明确,如果要用指针访问char型空间,只需定义char *即可,没必要用int*。
lovesi3344
2010-01-12
打赏
举报
回复
c=(int)p1; //指针转换成整数??
《C深度解析》第7、8章 结构体/共用体/枚举,杂项(自动
类型
转换
、大小端序等)
第7章: 1. 结构体 结构体定义、访问、传参,结构体对齐(offsetof宏... 枚举 第8章: 自动
类型
转换
、大小端序、typedef、编译器优化、extern "C"、程序调试、变参函数、do{}while(0)、内嵌汇编、调试版与发行版、断言
C语言
指针
类型
和
类型
转换
C语言
指针
类型
和
类型
转换
指针
类型
指针
是强
类型
,意思是特定
类型
的
指针
变量存放特定
类型
变量的地址,比如int * 需要一个指向整形的
指针
来存放整形数据的地址,char* 需要一个指向字符型的
指针
来存放字符型数据的地址,那为什么说
指针
是个强
类型
呢?
指针
不仅用来表示变量的地址,同时也得使用
指针
来解引用地址的内容,以此方便修改和使用变量的值。说到这里,我们又得来回顾一下数据
类型
所占空间的大小(32位机器) int - 4byte char - 1byte float - 4byte 我们用一个实例来说明
指针
是
c语言中
指针
类型
的强制
类型
转换
对
指针
类型
数据进行强制
类型
转换
的一般形式: (
类型
说明符 *)
指针
表达式 其作用是把“
指针
表达式”的值的
类型
转换
成“
类型
说明符”指定的
指针
类型
。例如: int * px, x = 10; float * pf; px = &x; pf = (float *)px; //把px保存的int
类型
地址
转换
为float
类型
地址 以下是我的疑惑之处,问了大佬解惑。 1.变量x依然是int...
C++
指针
类型
间强制
转换
深入理解
指针
类型
间的
转换
C++中
指针
的强制
转换
强制
类型
转换
(int)、(int&)和(int*)的区别 内存中的地址 地址的本质就是一串0和1的机器代码,内存中的地址没有明确数据
类型
,但地址值有
类型
,以32位编译器为例,内存中的地址是一个32位的整数。无论什么
类型
的
指针
变量,在内存中本质上都是一样的,都是一个整数值的地址值,该地址值可以
转换
为其他
类型
,比如float或char,但一般不要强转,此时已不再是合法地址而是一个单纯的数据值,除了没有意义外,还会出现数据读取错误(后...
C++
指针
类型
与强制
转换
C++
指针
类型
指针
,用来描述内存地址,并通过提供
指针
操作来实现与内存相关的程序功能。
指针
是一个特殊数据
类型
,也可以理解为混合数据
类型
。
指针
具有数据
类型
信息及数据在内存空间的地址。 C++
指针
的
类型
转换
问题的由来:当我们想打印
指针
地址时,或是某些需求想得到地址值时,我们必须转化为字符
类型
给显示组件。比如label等等。。。 问题分析:C++
指针
虽然像int
类型
或是long i...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章