指針加減表示類型元素移動的個數
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;
}