指针加减表示类型元素移动的个数
struct Test{
int Num;
char *pName;
short sDate;
}*p;
以上定义了一个指针p,指向struct Test类型
假设p = 0x1000,有以下结果
p + 1 = p值+sizeof(struct Test);
(unsigned long)p + 1 =0x01000+1 = 0x1001 //将p强转为unsigned long ,结果为unsigned long 加减
(unsigned long *)p + 1 = p值 + sizeof(unsigned long)
64位菜鸟在线:https://c.runoob.com/compile/11
source code:
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
printf("%d\n",sizeof(0xAABBCCDDU));
printf("%d\n",sizeof(unsigned long));
unsigned long *start=0x80000000;
unsigned long *end=start +0x100000;
unsigned long *test=0x80000000 +sizeof(unsigned long)*0x100000;
char *p=NULL;
printf("%p\n",end);
printf("%p\n",test);
printf("%d\n",sizeof(p));
return 0;
}