c语言中的"*(char *)&a;"这条代码是什么意思

 我来答
guxuecan剑
2019-02-12 · TA获得超过3.1万个赞
知道答主
回答量:86
采纳率:0%
帮助的人:1.5万
展开全部

char* 是声明一个字符类型的指针。

比如:chat*  y;

就是声明一个指针y,这个指针指向的地址上只能存放字符类型的值。

扩展资料:

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。

在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。

作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。

御含灵9r
2013-08-02 · TA获得超过4157个赞
知道大有可为答主
回答量:3007
采纳率:0%
帮助的人:2666万
展开全部
a是一个类型
&a取a的地址
(char *)&a 将a地址所在位置视为字符型指针的地址
*(char *)&a取a所在地址的第0个字节的值作为一个char返回(-128~127)

实际上假设a是整数a是4个字节(byte)
那么怎么取到第0个字节的值就是你说的这个式子
追问
哦,呵呵。还有点不明白的是为什么要将该地址视为字符指针地址,地址是用十六进制的整数表示的。

是不是,取a的地址,而a是整形的占四个字节,他的地址也占四个字节,强制转换后,就变成单个字节了!
追答
地址和整型占四个字节不同的含义,你的理解有偏差,理解成取整型4个byte中一个的值是比较准确
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式