当前位置:   article > 正文

c语言中 指针加法_c语言指针求和

c语言指针求和

c语言中 指针加法(p++p+2)

例如:int arr[10]={1,2,3}

      int *p=arr;

      p++;

      *p=10;

在例题中的p++的意义:

有如下的三种可能性:1、加一个字节;

                    2、加一个单元格;

                    3、加一个数组;

 

我们做以下的分析 :             

对于第一种可能性:

  加一个字节的话,即在101105中间放入解引用的10;(如图所示)

 将红色部分放大4倍:

注:小端:低地址放小数据

大端:底地址放大数据

pc端为小端:则1存放的方式为,00000001

 进行*p=10的步骤:

           

对于第二种可能性:

           

对于第三种可能性:

即加入一个数组,这种可能性不存在。

 

由上可知,p+1为加人一个单元格;

 

做如下的练习:

指针+-数字

#include <stdio.h>

int main()

{ int *p=(int *)1000;

  printf("%d\n",p+4);    1016

  printf("%d\n",(short *)p+4);     1008

  printf("%d\n",(long *)p+4);      1016

  printf("%d\n",(double *)p+4);    1032

  printf("%d\n",(char *)p+4);      1016

   printf("%d\n",(char **)p+4);     1004

   printf("%d\n",(long long)p+4);   1004

}

 

#include <stdio.h>

int main()

{

   int *p=(int *)0x2010;

   printf("%x\n",p-2);                         2008       

   printf("%x\n",(char *)p-2);                 200e

   printf("%x\n",(float *)p-2);                2008

   printf("%x\n",(double *)p-2);               2000

    printf("%x\n",(unsigned long *)p-2);       2008

    printf("%x\n",(short *****)p-2);           2008

    return 0;

}

 

 

 

 

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号