如果我有一些整数数组,我们就说:
int iarr[5] = {0, 7, 3, 12, 99};
地址出现在哪个位置0xbfdf53a8
;我想用循环打印出这个值,我可以做这样的事情:
for(i=0; i<5; i++)
printf("value of iarr[%d] = %d\n", i, *(iarr+i));
这个循环是有效的,因为我们每次都增加一个“int”(在典型的 32 位机器上,地址每次迭代增加 4 个字节)。
我的问题是,什么时候应用类型指定的字节偏移量?那是编译过程的一部分(意味着它在某处的程序集中),还是在操作系统级别完成?
我会假设这是如何以标准化方式处理的,但我还没有找到答案。