比如: 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