数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2728|回复: 6

[C51] 指针乘法运算出错,求解释原因

[复制链接]
发表于 2021-4-7 22:21:27 | 显示全部楼层
你用int指针指向的char
类型错了

打赏

参与人数 1家元 +20 收起 理由
广东梁百万 + 20 精彩回帖

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2021-4-8 07:55:43 | 显示全部楼层
广东梁百万 发表于 2021-4-7 22:34
原来如此,我刚把两者都改为同是int 或同是char,  再执行   //指针测试函数2   确实得到正确的值,
但是 ...

哈哈,为啥加法对呢。一步一步分析:
最初内存中是这个样子:0x02,0x03,0x0
(*DPTR1)=0x0302
(*DPTR2)=0x0003
加起来=0x0305,所以(*DPTR3)=0x0305,此时内存中是:0x02,0x03,0x05,0x03
所以c=(*DPTR3)=0x05
所以加法碰巧对了

打赏

参与人数 1家元 +8 收起 理由
广东梁百万 + 8 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-18 10:47 , Processed in 0.140401 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表