指针数据类型详解与内存管理策略
1. 指针算术运算
在编程中,指针算术运算有着重要的作用。下面我们通过C/C++代码示例来详细了解。
int *intPtr;
// Allocate storage for eight integers:
intPtr = malloc( sizeof( int ) * 8 );
// Initialize each of these integer values:
*(intPtr+0) = 0;
*(intPtr+1) = 1;
*(intPtr+2) = 2;
*(intPtr+3) = 3;
*(intPtr+4) = 4;
*(intPtr+5) = 5;
*(intPtr+6) = 6;
*(intPtr+7) = 7;
此示例展示了C/C++如何使用指针算术来指定相对于基指针地址的整数大小偏移,而非字节偏移。
需要注意的是,加法运算符仅在指针和整数值之间有意义。例如,在C/C++中,可以使用 *(p + i) (其中 p 是指向对象的指针, i 是整数值)间接访问内存中的对象。但将两个指针相加没有意义,同样,将其他数据类型与指针相加也不合理。比如,将浮点值加到指针上没有意义,因为无法明确在某个基地址加上 1.5612 后引用的数据是什么。
另外,不仅可以将整数加到指针上,也可以将指针加到整数上,结果仍然是指针( p + i 和 i + p 都是合法
超级会员免费看
订阅专栏 解锁全文
1283

被折叠的 条评论
为什么被折叠?



