c - () 语句之外的指针
问题描述
我无法理解循环内部发生了什么
char var_64;
char var_24;
int32_t r0_6 = 0;
do
{
*(&var_24 + r0_6) = *(&var_64 + r0_6);
r0_6 = r0_6 + 1;
}
while (r0_6 != 8);
我无法得到这部分:
*(&var_24 + r0_6) = *(&var_64 + r0_6);
它是否将 var_24 的地址加 1 并将 var_64 的地址加 1 分配给它?指针 * 在这里做什么?
编辑:
这是来自另一个反编译器的相同反编译代码:
char v29[16];
unsigned __int8 v39;
memset(&v39, 0, 8u);
memset(v29, 0, 0x10u);
do
{
*(&v39 + v10) = v29[v10];
++v10;
}
while ( v10 != 8 );
这里我觉得一样,但是它把 v29 显示为一个数组
解决方案
推荐阅读
- python - 绘制特定区域
- wordpress - 使用 Wordpress、BuddyPress 和 Mailgun,但 HTML 邮件不起作用,只有普通的,是否存在任何解决方案?
- python - 在整个 Numpy 库中读取文件
- java - 如何在 BIRT API 中设置 Excel 工作表名称?
- dafny - Dafny 迭代器:违反了前提条件和修改子句
- javascript - 在特定转换值处触发函数
- postgresql - 如何解决 org.springframework.jdbc.BadSqlGrammarException
- excel - 连续查找并制定下一个星期六 - excel
- r - 定位存储 R 代码的目录
- mysql - 如何访问显示错误“mysql 服务器消失”的网站?