c语言中的"*(char *)&a;"这条代码是什么意思
2个回答
展开全部
char* 是声明一个字符类型的指针。
比如:chat* y;
就是声明一个指针y,这个指针指向的地址上只能存放字符类型的值。
扩展资料:
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。
作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。
展开全部
a是一个类型
&a取a的地址
(char *)&a 将a地址所在位置视为字符型指针的地址
*(char *)&a取a所在地址的第0个字节的值作为一个char返回(-128~127)
实际上假设a是整数a是4个字节(byte)
那么怎么取到第0个字节的值就是你说的这个式子
&a取a的地址
(char *)&a 将a地址所在位置视为字符型指针的地址
*(char *)&a取a所在地址的第0个字节的值作为一个char返回(-128~127)
实际上假设a是整数a是4个字节(byte)
那么怎么取到第0个字节的值就是你说的这个式子
追问
哦,呵呵。还有点不明白的是为什么要将该地址视为字符指针地址,地址是用十六进制的整数表示的。
是不是,取a的地址,而a是整形的占四个字节,他的地址也占四个字节,强制转换后,就变成单个字节了!
追答
地址和整型占四个字节不同的含义,你的理解有偏差,理解成取整型4个byte中一个的值是比较准确
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询