在我的OS讲座中,我们使用C做一个小型的初学者练习。
考虑内存中的一个整数数组。您如何使用以下指针访问第四个元素?两者都指向数组的开头。
int * ip;
void * vp;
我设法用两个指针访问了第四个元素,但是我不确定为什么。
这是我为int * ip做的事情:
printf("%d \n", *(ip + 3));
这就是我为无效* vp所做的:
printf("%d \n", *(int *)(ip + 3 * sizeof(int));
所以,我的问题是:这些指针之间有什么区别,为什么我必须将int的大小添加到void指针?
非常感谢您。