指针只是一种屏蔽地址的概念。是语言本身的问题,实现方式,你想怎么实现就怎么实现。只要满足这个feature即可。 *(int*)0xccccccccc = 0xff; mov eax 0xccccccccc; mov dword ptr [eax], 0xff 从汇编下来看,就是在地址0xcccccccc处写入0xff这个值。当然,汇编下当然是没有指针这种概念的。指针的语义就C的概念。
指针这种机制是C语言编译器提供的。变量的地址(也就是指针变量的值)是在程序编译时由编译器分配的。
要问怎么实现?其实就是问运算符
&
和*
怎么实现的。