Dienstag, 22. September 2015

指针++(pointer ++)的理解

*pointer++是先对pointer进行++运算。pointer里面放的是地址;

比如: int a = 0;
      int *p2 = null;
      p2 = &a;
      p2++;                    

一般理解p2++后,应该是指向了地址0x0012FF77;

实际上p2++后,应该是指向了地址0x0012FF7A;(原因:由于定义的pointer的基类型为 int,也就是pointer指向的那片区域为int型。要把这个区域看成一个整体。)


假设:iPtr当前所存地址是0x00000100;
      若iPtr指向一个整型元素(占4个字节),
      则iPtr++ 等于 iPtr + 1*4 = 0x00000100;
      若iPtr指向一个实型元素(占4个字节);
      则iPtr++等于iPtr + 1*4 = 0x00000104;
      若iPtr++指向一个字符元素(占一个字节);
      则iPtr++等于iPtr + 1*1 = 0x00000101;



Keine Kommentare:

Kommentar veröffentlichen