C++指针运算有关问题

C++指针运算问题。
在做数据结构与算法的题需要把指针进行亦或操作,显然直接亦或指针是要报错的,所以我现在是想先把指针强制装换成int型异或完了再强制转换回定义的指针的类型;可是这样要多打好多字,求有什么好方法?重载运算符?
------解决思路----------------------
如果只是因为要打很多字,将那部份代码定义成一个简单的宏就行了

对指针做异或?意义何在?
------解决思路----------------------
你非要这么做就这样吧

#define CALC(P, N) ((unsigned long)(P) ^ (unsigned long)(N))