指針加減與地址強制轉化(附上操作系統位數)

指針加減表示類型元素移動的個數

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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章