*((uint32_t *)从内存空间读取

时间:2017-11-06 20:18:01

标签: c

我想了解一些已发布的代码。它就像这样......

void *base_address;

int j;

然后

*((uint32_t *)base_address+ j)=j;

如果j是一个计数器,这是否意味着如果我的计数器计数为1,则base_address计数为4以允许最多32位整数的空间?

如果这是正确的,程序员是如何使用这种语法的?

*((uint32_t *)

1 个答案:

答案 0 :(得分:7)

如果j1计算,则(uint32_t *)base_address+ j表达式计数为4,即sizeof(uint32_t)

您的帖子中的语法是下面代码的一个版本,除了您的代码是在没有引入其他变量的情况下编写的:

uint32_t *ptr = (uint32_t *)base_address;
*(ptr+j) = j;

或其等价物

uint32_t *ptr = (uint32_t *)base_address;
ptr[j] = j;
相关问题